#Exportamos la base
base <- read_excel("base_corregida_final.xlsx")
#creamos una variable con todos los nombres para futuras referencias:
nombres <- c("Pac_Sex", "Pac_Edad", "Pac_Cobertura", "Pac_HTA", "Pac_DBT", "Pac_TBQ", "Pac_DLP", "Pac_ICC", "Pac_FA", "Pac_ETVpre", "Pac_TEPpre", "Pac_TEP_previo_menor_3_meses", "Pac_Deamb", "Pac_Reposo", "Pac_EPOC", "Pac_ACVglobal", "Pac_Hemorragia_Previa_Mayor_Todas", "Pac_Hemorragia_Previa_Mayor_Reciente", "Pac_EnfAuto", "Pac_IRCglobal", "Pac_SmeProcoag", "PESI_Cancer", "Pac_ACO_Previa", "IMC", "MotInt", "PESI_Det_Sens", "CC_Horas_Sx_Admision", "CC_FC_Ingreso", "PESI_Taquicardia", "CC_TAS_Ingreso", "PESI_Hipotension", "CC_FR_Ingreso", "PESI_Taquipnea", "PESI_Hipotermia", "CC_SaO_Ingreso", "CC_SaO90", "Wells", "PESIcalc", "PESI_clasif", "PESIsCalc", "PESIs_Clasif", "Pac_Cx_Total", "Lab_Hto", "Lab_Hb", "Lab_GB", "Lab_Cr", "Lab_Plaq", "Biomarc_pos", "ECOTT_FSVI", "ECOTT_TAPSE", "ECOTT_PSAP", "ECOTT_DisfVD", "Alta_Carga_Trombo_TAC", "Int_O_Alto_Riesgo_Calc", "EstRiesgo", "ServicioCargo", "RIETE_Calc", "RIETE_Grupo", "HASBLED", "ACOint", "FVCI", "Tto_Reperf", "TL_cual", "Compl_Sang_Todos", "Compl_SoporteHD_NO", "Alta_Tto_TiposACO", "DOAC_si_vs_no")
#ordenamos su estructura
base[sapply(base, is.character)] <- lapply(base[sapply(base, is.character)], as.factor)
- De una muestra original de 684 pacientes internados por tener complicaciones tromboembólicas, se registraron, en primera instancia, 322 variables.
Esas variables referían a: características sociales y demográficas; aspectos de sus historias clínicas; características clínicas registradas en el momento de ingreso nosocomial; resultados de estudios complementarios realizados durante el período de internación –que incluyen imágenes y bioindicadores de laboratorio-; indicadores de estado en el momento del alta; prescripciones para tratamiento preventivo; indicadores de seguimiento a los 30 días (¿pautas de alarma?). Otras variables incluidas consisten en un conjunto de índices compuestos relacionados con la estimación de riesgos diversos: Registro Informatizado de Pacientes con Enfermedad Trombo Embólica (RIETE); Índice de Wells para Trombosis Venosa Profunda (TVP - Wells); Índice de Severidad para el Embolismo Pulmonar (Pulmonary Embolism Severity Index, PESI); y una escala de Estratificación pronóstica y tratamiento de la tromboembolia pulmonar en fase aguda (EstRiesgo). Se conservan estos índices para compararlos con las estimaciones multivariadas que puedan obtenerse con los datos fundamentales.
De ellas se seleccionaron 69 variables que presentan el contenido conceptual fundamental para el ajuste de un modelo explicativo centrado en el análisis multivariante de las probabilidades de sufrir episodios de sangrado. Las 253 variables excluídas presentaban articulaciones lógicas o aritméticas de algunas de las 69 variables conservadas, de modo que se optó por concentrar el análisis en las dimensiones empíricas fundamentales.
Por último, se incluye la variable Compl_Sang_Todos última como variable que expresa el desenlace fundamental, y que se adopta como variable respuesta para los modelos de regresión: si el paciente sufrió algún tipo de sangrado como complicación del tratamiento anti coagulante y/o de reperfusión realizado. Incluye todos los sangrados de la clasificación BARC mayor o igual a II: sangrados que requieren atención médica o más
prop_miss(base)*100
[1] 3.02
prop_miss(base$Compl_Sang_Todos)
[1] 0
vis_dat(base) + ggtitle("Gráfico 1 - Valores perdidos según tipos de variables (n = 684)")
# vis_miss(base) + ggtitle("Gráfico 2 - Porcentaje de valores perdidos o no registrados por variables (n = 684)") ### ¡ATENCIÓN! ### Saco este gráfico porque está más abajo como Gráfico 5.
# Revisar si estoy nombrando bien las variables de agrupamiento.
# Los gráficos 4, 5 y 6 permiten ver la distribución de valores perdidos en porcentajes de cada una de las variables. Estos gráficos son más ordenadores y hasta permitirían apreciar cuáles son las variables con más valores perdidos. Los gg_miss_var no permiten comparar las distribuciones porque las cantidades de UA con sangrados son siempre mucho menores.
# gg_miss_var_cumsum(x = base) + ggtitle("Gráfico 3 - Valores perdidos acumulados por variables (n = 684)")
gg_miss_fct(x = base, fct = Compl_Sang_Todos) + ggtitle("Gráfico 2 - Porcentajes de valores perdidos según desenlace de todos los tipos de sangrado (n = 684)")
# ¡ATENCIÓN! # No se incluyen los gráficos que siguen porque como las UA con sangrado son siempre muchas menos, la comparación visual en términos absolutos pierde sentido.
# gg_miss_var(x = base, fct = Compl_Sang_Todos)
# gg_miss_var(base, facet = Compl_Sang_Interm)
# gg_miss_var(base, facet = Compl_Sang_Mayor)
# Relación con otras variables.
aggr_plot <- aggr(base, col=c('cyan','red'), numbers=TRUE, sortVars=TRUE, labels=names(base), cex.axis=.7, gap=3, ylab=c("Gráfico 5 - Proporción de valores perdidos por variable (n = 684)","Gráfico 6 - Patrón de valores perdidos en la matriz de datos (n = 684)")) # Están muy buenos estos gráficos. Cambié el azul obscuro por cyan, que permite apreciar mejor la distribución por dato. Y le cambié el título porque, en verdad, el primero no sería un histograma: muestra la proporción de valores perdidos por variable, una junto a la otra. El segundo, en cambio, muestra cómo se distribuyen los valores perdidos por UA y por Variables. Quizá podamos dejar estos dos gráficos junto y sacar el que yo titulé 3.
Warning: not enough vertical space to display frequencies (too many combinations)
Variables sorted by number of missings:
# Saco a los casos con faltantes
bd_prueba <- na.omit(base)
n_inicial <- nrow(base)
n_final <- nrow(bd_prueba)
(n_inicial- n_final)/n_inicial
[1] 0.765
#Descriptiva segun si tiene o no faltantes
base$miss.univ<-ifelse(!is.na(base$Compl_Sang_Todos), 0, 1)
tab1_miss <- tableby(miss.univ ~ ., data = base)
Warning: The by-variable has fewer than two levels; statistical tests are ignored
tab1_miss
tableby Object
Function Call:
tableby(formula = miss.univ ~ ., data = base)
Variable(s):
miss.univ ~ Pac_Sex, Pac_Edad, Pac_Cobertura, Pac_HTA, Pac_DBT, Pac_TBQ, Pac_DLP, Pac_ICC, Pac_FA, Pac_ETVpre, Pac_TEP_previo_menor_3_meses, Pac_Deamb, Pac_Reposo, Pac_EPOC, Pac_ACVglobal, Pac_Hemorragia_Previa_Mayor_Todas, Pac_Hemorragia_Previa_Mayor_Reciente, Pac_EnfAuto, Pac_IRCglobal, Pac_SmeProcoag, PESI_Cancer, Pac_ACO_Previa, Peso, IMC, MotInt, PESI_Det_Sens, CC_Horas_Sx_Admision, CC_FC_Ingreso, PESI_Taquicardia, CC_TAS_Ingreso, PESI_Hipotension, CC_FR_Ingreso, PESI_Taquipnea, PESI_Hipotermia, CC_SaO_Ingreso, CC_SaO90, Wells, PESIcalc, PESI_clasif, PESIsCalc, PESIs_Clasif, Pac_Cx_Total, Lab_Hto, Lab_Hb, Lab_GB, Lab_Cr, Lab_Plaq, Biomarc_pos, ECOTT_FSVI, ECOTT_TAPSE, ECOTT_PSAP, ECOTT_DisfVD, Alta_Carga_Trombo_TAC, Int_O_Alto_Riesgo_Calc, EstRiesgo, ServicioCargo, RIETE_Calc, RIETE_Grupo, HASBLED, ACOint, FVCI, Tto_Reperf, TL_cual, Compl_Sang_Todos, Compl_SoporteHD_NO, TiempoInt, Alta_Tto_TiposACO, DOAC_si_vs_no
summary(tab1_miss)
| 0 (N=684) | Total (N=684) | |
|---|---|---|
| Pac_Sex | ||
| Femenino | 388 (56.7%) | 388 (56.7%) |
| Masculino | 296 (43.3%) | 296 (43.3%) |
| Pac_Edad | ||
| Mean (SD) | 63.801 (16.777) | 63.801 (16.777) |
| Range | 16.000 - 97.000 | 16.000 - 97.000 |
| Pac_Cobertura | ||
| Estatal | 99 (14.5%) | 99 (14.5%) |
| Obra Social | 307 (44.9%) | 307 (44.9%) |
| PAMI | 82 (12.0%) | 82 (12.0%) |
| Prepaga / Privada | 196 (28.7%) | 196 (28.7%) |
| Pac_HTA | ||
| No | 301 (44.0%) | 301 (44.0%) |
| Si | 383 (56.0%) | 383 (56.0%) |
| Pac_DBT | ||
| No | 586 (85.7%) | 586 (85.7%) |
| Si | 98 (14.3%) | 98 (14.3%) |
| Pac_TBQ | ||
| Ex-tabaquista | 76 (11.1%) | 76 (11.1%) |
| No | 420 (61.4%) | 420 (61.4%) |
| Tabaquista | 188 (27.5%) | 188 (27.5%) |
| Pac_DLP | ||
| No | 481 (70.3%) | 481 (70.3%) |
| Si | 203 (29.7%) | 203 (29.7%) |
| Pac_ICC | ||
| No | 606 (88.6%) | 606 (88.6%) |
| Si | 78 (11.4%) | 78 (11.4%) |
| Pac_FA | ||
| No | 636 (93.0%) | 636 (93.0%) |
| Si | 48 (7.0%) | 48 (7.0%) |
| Pac_ETVpre | ||
| No | 564 (82.5%) | 564 (82.5%) |
| Si | 120 (17.5%) | 120 (17.5%) |
| Pac_TEP_previo_menor_3_meses | ||
| No | 678 (99.1%) | 678 (99.1%) |
| Si | 6 (0.9%) | 6 (0.9%) |
| Pac_Deamb | ||
| Ninguna | 517 (75.6%) | 517 (75.6%) |
| Si | 167 (24.4%) | 167 (24.4%) |
| Pac_Reposo | ||
| No | 498 (72.8%) | 498 (72.8%) |
| Si | 186 (27.2%) | 186 (27.2%) |
| Pac_EPOC | ||
| No | 623 (91.1%) | 623 (91.1%) |
| Si | 61 (8.9%) | 61 (8.9%) |
| Pac_ACVglobal | ||
| No | 643 (94.0%) | 643 (94.0%) |
| Si | 41 (6.0%) | 41 (6.0%) |
| Pac_Hemorragia_Previa_Mayor_Todas | ||
| No | 655 (95.8%) | 655 (95.8%) |
| Si | 29 (4.2%) | 29 (4.2%) |
| Pac_Hemorragia_Previa_Mayor_Reciente | ||
| No | 665 (97.2%) | 665 (97.2%) |
| Si | 19 (2.8%) | 19 (2.8%) |
| Pac_EnfAuto | ||
| No | 649 (94.9%) | 649 (94.9%) |
| Si | 35 (5.1%) | 35 (5.1%) |
| Pac_IRCglobal | ||
| No | 630 (92.1%) | 630 (92.1%) |
| Si | 54 (7.9%) | 54 (7.9%) |
| Pac_SmeProcoag | ||
| No | 657 (96.1%) | 657 (96.1%) |
| Si | 27 (3.9%) | 27 (3.9%) |
| PESI_Cancer | ||
| No | 494 (72.2%) | 494 (72.2%) |
| Si | 190 (27.8%) | 190 (27.8%) |
| Pac_ACO_Previa | ||
| No | 620 (90.6%) | 620 (90.6%) |
| Si | 64 (9.4%) | 64 (9.4%) |
| Peso | ||
| N-Miss | 9 | 9 |
| Mean (SD) | 82.482 (19.614) | 82.482 (19.614) |
| Range | 40.000 - 158.000 | 40.000 - 158.000 |
| IMC | ||
| N-Miss | 56 | 56 |
| Mean (SD) | 29.629 (6.482) | 29.629 (6.482) |
| Range | 15.418 - 57.333 | 15.418 - 57.333 |
| MotInt | ||
| Otros | 25 (3.7%) | 25 (3.7%) |
| Patología clínica | 69 (10.1%) | 69 (10.1%) |
| Patología quirúrgica | 63 (9.2%) | 63 (9.2%) |
| TEP | 484 (70.8%) | 484 (70.8%) |
| Trauma | 19 (2.8%) | 19 (2.8%) |
| TVP | 24 (3.5%) | 24 (3.5%) |
| PESI_Det_Sens | ||
| No | 650 (95.0%) | 650 (95.0%) |
| Si | 34 (5.0%) | 34 (5.0%) |
| CC_Horas_Sx_Admision | ||
| N-Miss | 70 | 70 |
| Mean (SD) | 119.046 (217.283) | 119.046 (217.283) |
| Range | 0.000 - 2160.000 | 0.000 - 2160.000 |
| CC_FC_Ingreso | ||
| N-Miss | 5 | 5 |
| Mean (SD) | 96.053 (22.093) | 96.053 (22.093) |
| Range | 30.000 - 180.000 | 30.000 - 180.000 |
| PESI_Taquicardia | ||
| N-Miss | 2 | 2 |
| No | 426 (62.5%) | 426 (62.5%) |
| Si | 256 (37.5%) | 256 (37.5%) |
| CC_TAS_Ingreso | ||
| N-Miss | 5 | 5 |
| Mean (SD) | 122.404 (22.920) | 122.404 (22.920) |
| Range | 50.000 - 220.000 | 50.000 - 220.000 |
| PESI_Hipotension | ||
| No | 605 (88.5%) | 605 (88.5%) |
| Si | 79 (11.5%) | 79 (11.5%) |
| CC_FR_Ingreso | ||
| N-Miss | 26 | 26 |
| Mean (SD) | 21.798 (5.383) | 21.798 (5.383) |
| Range | 0.000 - 43.000 | 0.000 - 43.000 |
| PESI_Taquipnea | ||
| N-Miss | 26 | 26 |
| No | 349 (53.0%) | 349 (53.0%) |
| Si | 309 (47.0%) | 309 (47.0%) |
| PESI_Hipotermia | ||
| N-Miss | 15 | 15 |
| No | 624 (93.3%) | 624 (93.3%) |
| Si | 45 (6.7%) | 45 (6.7%) |
| CC_SaO_Ingreso | ||
| N-Miss | 18 | 18 |
| Mean (SD) | 92.331 (6.001) | 92.331 (6.001) |
| Range | 50.000 - 100.000 | 50.000 - 100.000 |
| CC_SaO90 | ||
| N-Miss | 17 | 17 |
| No | 500 (75.0%) | 500 (75.0%) |
| Si | 167 (25.0%) | 167 (25.0%) |
| Wells | ||
| N-Miss | 5 | 5 |
| Mean (SD) | 4.108 (2.315) | 4.108 (2.315) |
| Range | 0.000 - 10.500 | 0.000 - 10.500 |
| PESIcalc | ||
| Mean (SD) | 96.915 (34.881) | 96.915 (34.881) |
| Range | 16.000 - 239.000 | 16.000 - 239.000 |
| PESI_clasif | ||
| Mean (SD) | 2.940 (1.317) | 2.940 (1.317) |
| Range | 1.000 - 5.000 | 1.000 - 5.000 |
| PESIsCalc | ||
| Mean (SD) | 1.380 (1.147) | 1.380 (1.147) |
| Range | 0.000 - 5.000 | 0.000 - 5.000 |
| PESIs_Clasif | ||
| Mean (SD) | 0.738 (0.440) | 0.738 (0.440) |
| Range | 0.000 - 1.000 | 0.000 - 1.000 |
| Pac_Cx_Total | ||
| No | 520 (76.0%) | 520 (76.0%) |
| Si | 164 (24.0%) | 164 (24.0%) |
| Lab_Hto | ||
| N-Miss | 5 | 5 |
| Mean (SD) | 37.380 (6.611) | 37.380 (6.611) |
| Range | 13.000 - 59.000 | 13.000 - 59.000 |
| Lab_Hb | ||
| N-Miss | 23 | 23 |
| Mean (SD) | 12.191 (2.178) | 12.191 (2.178) |
| Range | 6.000 - 18.000 | 6.000 - 18.000 |
| Lab_GB | ||
| N-Miss | 7 | 7 |
| Mean (SD) | 11171.840 (7303.752) | 11171.840 (7303.752) |
| Range | 1130.000 - 108000.000 | 1130.000 - 108000.000 |
| Lab_Cr | ||
| N-Miss | 11 | 11 |
| Mean (SD) | 1.061 (0.594) | 1.061 (0.594) |
| Range | 0.200 - 6.800 | 0.200 - 6.800 |
| Lab_Plaq | ||
| N-Miss | 40 | 40 |
| Mean (SD) | 221986.491 (94408.669) | 221986.491 (94408.669) |
| Range | 17700.000 - 731000.000 | 17700.000 - 731000.000 |
| Biomarc_pos | ||
| N-Miss | 200 | 200 |
| No | 153 (31.6%) | 153 (31.6%) |
| Si | 331 (68.4%) | 331 (68.4%) |
| ECOTT_FSVI | ||
| N-Miss | 64 | 64 |
| Deprimida | 16 (2.6%) | 16 (2.6%) |
| Leve | 36 (5.8%) | 36 (5.8%) |
| Moderada | 14 (2.3%) | 14 (2.3%) |
| Normal | 532 (85.8%) | 532 (85.8%) |
| Severa | 22 (3.5%) | 22 (3.5%) |
| ECOTT_TAPSE | ||
| N-Miss | 239 | 239 |
| Mean (SD) | 18.214 (5.526) | 18.214 (5.526) |
| Range | 3.000 - 35.000 | 3.000 - 35.000 |
| ECOTT_PSAP | ||
| N-Miss | 240 | 240 |
| Mean (SD) | 46.341 (17.966) | 46.341 (17.966) |
| Range | 10.000 - 120.000 | 10.000 - 120.000 |
| ECOTT_DisfVD | ||
| N-Miss | 86 | 86 |
| No | 379 (63.4%) | 379 (63.4%) |
| Si | 219 (36.6%) | 219 (36.6%) |
| Alta_Carga_Trombo_TAC | ||
| N-Miss | 94 | 94 |
| No | 69 (11.7%) | 69 (11.7%) |
| Si | 521 (88.3%) | 521 (88.3%) |
| Int_O_Alto_Riesgo_Calc | ||
| No | 256 (37.4%) | 256 (37.4%) |
| Si | 428 (62.6%) | 428 (62.6%) |
| EstRiesgo | ||
| N-Miss | 8 | 8 |
| Alto riesgo | 102 (15.1%) | 102 (15.1%) |
| Bajo riesgo | 164 (24.3%) | 164 (24.3%) |
| Intermedio-alto riesgo | 178 (26.3%) | 178 (26.3%) |
| Intermedio-bajo riesgo | 232 (34.3%) | 232 (34.3%) |
| ServicioCargo | ||
| N-Miss | 4 | 4 |
| Cardiología | 513 (75.4%) | 513 (75.4%) |
| Otro | 167 (24.6%) | 167 (24.6%) |
| RIETE_Calc | ||
| N-Miss | 11 | 11 |
| Mean (SD) | 2.513 (1.325) | 2.513 (1.325) |
| Range | 1.000 - 6.000 | 1.000 - 6.000 |
| RIETE_Grupo | ||
| N-Miss | 11 | 11 |
| Mean (SD) | 1.117 (0.322) | 1.117 (0.322) |
| Range | 1.000 - 2.000 | 1.000 - 2.000 |
| HASBLED | ||
| Mean (SD) | 1.175 (1.016) | 1.175 (1.016) |
| Range | 0.000 - 6.000 | 0.000 - 6.000 |
| ACOint | ||
| No | 23 (3.4%) | 23 (3.4%) |
| Si | 661 (96.6%) | 661 (96.6%) |
| FVCI | ||
| N-Miss | 15 | 15 |
| No | 626 (93.6%) | 626 (93.6%) |
| Si | 43 (6.4%) | 43 (6.4%) |
| Tto_Reperf | ||
| No | 593 (86.7%) | 593 (86.7%) |
| Si | 91 (13.3%) | 91 (13.3%) |
| TL_cual | ||
| Alteplase | 30 (4.4%) | 30 (4.4%) |
| Estreptokinasa | 48 (7.0%) | 48 (7.0%) |
| Ninguno | 567 (82.9%) | 567 (82.9%) |
| No | 39 (5.7%) | 39 (5.7%) |
| Compl_Sang_Todos | ||
| No | 627 (91.7%) | 627 (91.7%) |
| Si | 57 (8.3%) | 57 (8.3%) |
| Compl_SoporteHD_NO | ||
| No | 572 (83.6%) | 572 (83.6%) |
| Si | 112 (16.4%) | 112 (16.4%) |
| TiempoInt | ||
| N-Miss | 94 | 94 |
| Mean (SD) | 14.414 (22.235) | 14.414 (22.235) |
| Range | 0.000 - 256.000 | 0.000 - 256.000 |
| Alta_Tto_TiposACO | ||
| AVK | 348 (50.9%) | 348 (50.9%) |
| DOACs | 108 (15.8%) | 108 (15.8%) |
| HBPM | 123 (18.0%) | 123 (18.0%) |
| Obito | 83 (12.1%) | 83 (12.1%) |
| Sin ACO | 22 (3.2%) | 22 (3.2%) |
| DOAC_si_vs_no | ||
| No | 576 (84.2%) | 576 (84.2%) |
| Si | 108 (15.8%) | 108 (15.8%) |
NA
- La base contiene un 2.979 % de valores perdidos y/o no registrados. El Gráfico 1 muestra los valores perdidos por variable y según el tipo de variable: cualitativa o cuantitativa. Los Gráficos 2, 3 y 4 muestran los porcentajes de valores no registrados agrupados según desenlace de sangrado total, intermedio y mayor. En el Gráfico 5 se pueden apreciar las proporciones de valores perdidos por variables, y en el 6 el patrón general de distribución de los valores faltantes en la matriz de datos.
Sólo …. registros de la base estaban completos, de manera que al 76.462 % de los registros les faltaba al menos un valor.
Tres variables concentran la mayor cantidad de valores faltantes: ECOTT_PSAP, con 240 valores perdidos, y ECOTT_TAPSE, con 239 valores perdidos. Se trata de medidas de la función cardíaca por ecografía transtorácica. La variable Biomarc_pos, que registra marcadores positivos de enzimas cardíacas, muestra 200 valores faltantes. En menor medida, el tiempo de internación, variable TiempoInt, presenta 94 valores perdidos, y la medición de disfunción ventricular derecha por ecografía transtorácica, variable ECOTT_DisfVD, 86 valores perdidos.
Esta magnitud de valores perdidos o faltantes justifica implementar mecanismos de imputación que impidan perder el 23.538 % de los datos construidos en el trabajo de campo, que es el porcentaje de unidades de análisis con al menos un valor perdido.
- Se realiza el análisis de correlación entre las variables cuantitativas:
# Chequeo cuales son las variables numéricas para poder calcular la matriz de correlación
head(base)
# Calculo matriz de correlación para los registros completos (omitiendo faltantes) con ambos métodos
# Pearson
matriz.correl.pe <- base %>% dplyr::select_if(is.numeric) %>%
correlate(use = "complete.obs", method = "pearson")
Warning: the standard deviation is zero
Correlation method: 'pearson'
Missing treated using: 'complete.obs'
#Armo tabla de correlación con método de Pearson
matriz.correl.pe%>%
shave() %>%
fashion()
# Spearman
matriz.correl.sp <- base %>% dplyr::select_if(is.numeric) %>%
correlate(use = "complete.obs", method = "spearman")
Warning: the standard deviation is zero
Correlation method: 'spearman'
Missing treated using: 'complete.obs'
#Armo tabla de correlación con método de Spearman
matriz.correl.sp %>%
shave() %>%
fashion()
#Grafico solo spearman ya que es el más robusto ante presencia de outliers
matriz.correl.sp %>% rplot(colors = c("red", "blue"))
- Se elimina la variable Hto por registrar correlación positiva fuerte con la variable Hb (0.87). Las otras variables se eliminan y se dejan solo los scores originales.
#Armo nuevo dataset excluyendo la variable Hto
base_3 <- base %>%
dplyr::select(., -c(Lab_Hto, PESI_clasif, PESIsCalc, PESIs_Clasif, RIETE_Grupo))
- Se decide imputar los datos datos faltantes, obteniendo 684 datos de las 66 variables elegidas.
base_3[sapply(base_3, is.character)] <- lapply(base_3[sapply(base_3, is.character)], as.factor)
base_imputada <- mice(base_3, m = 1, defaultMethod = c("pmm", "logreg", "polyreg", "polr"), maxit = 5, printFlag = F)
Warning: Number of logged events: 136
summary(base_imputada)
Class: mids
Number of multiple imputations: 1
Imputation methods:
Pac_Sex Pac_Edad Pac_Cobertura
"" "" ""
Pac_HTA Pac_DBT Pac_TBQ
"" "" ""
Pac_DLP Pac_ICC Pac_FA
"" "" ""
Pac_ETVpre Pac_TEP_previo_menor_3_meses Pac_Deamb
"" "" ""
Pac_Reposo Pac_EPOC Pac_ACVglobal
"" "" ""
Pac_Hemorragia_Previa_Mayor_Todas Pac_Hemorragia_Previa_Mayor_Reciente Pac_EnfAuto
"" "" ""
Pac_IRCglobal Pac_SmeProcoag PESI_Cancer
"" "" ""
Pac_ACO_Previa Peso IMC
"" "pmm" "pmm"
MotInt PESI_Det_Sens CC_Horas_Sx_Admision
"" "" "pmm"
CC_FC_Ingreso PESI_Taquicardia CC_TAS_Ingreso
"pmm" "logreg" "pmm"
PESI_Hipotension CC_FR_Ingreso PESI_Taquipnea
"" "pmm" "logreg"
PESI_Hipotermia CC_SaO_Ingreso CC_SaO90
"logreg" "pmm" "logreg"
Wells PESIcalc Pac_Cx_Total
"pmm" "" ""
Lab_Hb Lab_GB Lab_Cr
"pmm" "pmm" "pmm"
Lab_Plaq Biomarc_pos ECOTT_FSVI
"pmm" "logreg" "polyreg"
ECOTT_TAPSE ECOTT_PSAP ECOTT_DisfVD
"pmm" "pmm" "logreg"
Alta_Carga_Trombo_TAC Int_O_Alto_Riesgo_Calc EstRiesgo
"logreg" "" "polyreg"
ServicioCargo RIETE_Calc HASBLED
"logreg" "pmm" ""
ACOint FVCI Tto_Reperf
"" "logreg" ""
TL_cual Compl_Sang_Todos Compl_SoporteHD_NO
"" "" ""
TiempoInt Alta_Tto_TiposACO DOAC_si_vs_no
"pmm" "" ""
miss.univ
""
PredictorMatrix:
Pac_Sex Pac_Edad Pac_Cobertura Pac_HTA Pac_DBT Pac_TBQ Pac_DLP Pac_ICC Pac_FA Pac_ETVpre Pac_TEP_previo_menor_3_meses Pac_Deamb
Pac_Sex 0 1 1 1 1 1 1 1 1 1 1 1
Pac_Edad 1 0 1 1 1 1 1 1 1 1 1 1
Pac_Cobertura 1 1 0 1 1 1 1 1 1 1 1 1
Pac_HTA 1 1 1 0 1 1 1 1 1 1 1 1
Pac_DBT 1 1 1 1 0 1 1 1 1 1 1 1
Pac_TBQ 1 1 1 1 1 0 1 1 1 1 1 1
Pac_Reposo Pac_EPOC Pac_ACVglobal Pac_Hemorragia_Previa_Mayor_Todas Pac_Hemorragia_Previa_Mayor_Reciente Pac_EnfAuto
Pac_Sex 1 1 1 1 1 1
Pac_Edad 1 1 1 1 1 1
Pac_Cobertura 1 1 1 1 1 1
Pac_HTA 1 1 1 1 1 1
Pac_DBT 1 1 1 1 1 1
Pac_TBQ 1 1 1 1 1 1
Pac_IRCglobal Pac_SmeProcoag PESI_Cancer Pac_ACO_Previa Peso IMC MotInt PESI_Det_Sens CC_Horas_Sx_Admision CC_FC_Ingreso
Pac_Sex 1 1 1 1 1 1 1 1 1 1
Pac_Edad 1 1 1 1 1 1 1 1 1 1
Pac_Cobertura 1 1 1 1 1 1 1 1 1 1
Pac_HTA 1 1 1 1 1 1 1 1 1 1
Pac_DBT 1 1 1 1 1 1 1 1 1 1
Pac_TBQ 1 1 1 1 1 1 1 1 1 1
PESI_Taquicardia CC_TAS_Ingreso PESI_Hipotension CC_FR_Ingreso PESI_Taquipnea PESI_Hipotermia CC_SaO_Ingreso CC_SaO90 Wells
Pac_Sex 1 1 1 1 1 1 1 1 1
Pac_Edad 1 1 1 1 1 1 1 1 1
Pac_Cobertura 1 1 1 1 1 1 1 1 1
Pac_HTA 1 1 1 1 1 1 1 1 1
Pac_DBT 1 1 1 1 1 1 1 1 1
Pac_TBQ 1 1 1 1 1 1 1 1 1
PESIcalc Pac_Cx_Total Lab_Hb Lab_GB Lab_Cr Lab_Plaq Biomarc_pos ECOTT_FSVI ECOTT_TAPSE ECOTT_PSAP ECOTT_DisfVD
Pac_Sex 1 1 1 1 1 1 1 1 1 1 1
Pac_Edad 1 1 1 1 1 1 1 1 1 1 1
Pac_Cobertura 1 1 1 1 1 1 1 1 1 1 1
Pac_HTA 1 1 1 1 1 1 1 1 1 1 1
Pac_DBT 1 1 1 1 1 1 1 1 1 1 1
Pac_TBQ 1 1 1 1 1 1 1 1 1 1 1
Alta_Carga_Trombo_TAC Int_O_Alto_Riesgo_Calc EstRiesgo ServicioCargo RIETE_Calc HASBLED ACOint FVCI Tto_Reperf TL_cual
Pac_Sex 1 1 1 1 1 1 1 1 1 1
Pac_Edad 1 1 1 1 1 1 1 1 1 1
Pac_Cobertura 1 1 1 1 1 1 1 1 1 1
Pac_HTA 1 1 1 1 1 1 1 1 1 1
Pac_DBT 1 1 1 1 1 1 1 1 1 1
Pac_TBQ 1 1 1 1 1 1 1 1 1 1
Compl_Sang_Todos Compl_SoporteHD_NO TiempoInt Alta_Tto_TiposACO DOAC_si_vs_no miss.univ
Pac_Sex 1 1 1 1 1 0
Pac_Edad 1 1 1 1 1 0
Pac_Cobertura 1 1 1 1 1 0
Pac_HTA 1 1 1 1 1 0
Pac_DBT 1 1 1 1 1 0
Pac_TBQ 1 1 1 1 1 0
Number of logged events: 136
densityplot(base_imputada)
base_imp <- complete(base_imputada)
n_miss(base_imp)
[1] 0
- Se crea la variable de clearence de creatinina con formula de Cockcroft Gault. Creamos la variable edad >75 años para explorar si es predictor de sangrado. Es una variable que se incluye en el score de RIETE y plaquetas <100.000 a modo exploratorio.
base_imp$ClCr <- ((140 - base_imp$Pac_Edad) * base_imp$Peso) / (72 * base_imp$Lab_Cr)
base_imp$ClCr <- ifelse (base_imp$Pac_Sex == "Femenino", base_imp$ClCr*0.85, base_imp$ClCr)
summary(base_imp$ClCr)
Min. 1st Qu. Median Mean 3rd Qu. Max.
10 57 78 91 118 336
base_imp$Pac_Edad_Corte <- ifelse (base_imp$Pac_Edad >= 75, "Si", "No")
base_imp$Lab_Plaq_Corte <- ifelse (base_imp$Lab_Plaq >= 100000, "Si", "No")
base_imp$TEP_motivo_int <- ifelse (base_imp$MotInt == "TEP", "Si", "No")
base_backup <- base_imp
#TABLA 1
#Tabla resumen cuantitativas con media/SD, mediana/IQ
resumen_cuant <- round(basicStats(base_imp[,c("Pac_Edad","CC_TAS_Ingreso", "CC_FC_Ingreso", "Wells", "PESIcalc", "RIETE_Calc", "Lab_Hb", "Lab_Cr", "Lab_Plaq", "ECOTT_TAPSE", "ECOTT_PSAP", "TiempoInt")]), digits = 2)
kbl(resumen_cuant, digits = 1,caption= "Tabla resumen - Variables cuantitativas" )%>%
kable_paper("hover", full_width = T)
| Pac_Edad | CC_TAS_Ingreso | CC_FC_Ingreso | Wells | PESIcalc | RIETE_Calc | Lab_Hb | Lab_Cr | Lab_Plaq | ECOTT_TAPSE | ECOTT_PSAP | TiempoInt | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| nobs | 684.0 | 684.0 | 684.0 | 684.0 | 684.0 | 684.0 | 684.0 | 684.0 | 684.0 | 684.0 | 684.0 | 684.0 |
| NAs | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| Minimum | 16.0 | 50.0 | 30.0 | 0.0 | 16.0 | 1.0 | 6.0 | 0.2 | 17700.0 | 3.0 | 10.0 | 0.0 |
| Maximum | 97.0 | 220.0 | 180.0 | 10.5 | 239.0 | 6.0 | 18.0 | 6.8 | 731000.0 | 35.0 | 120.0 | 256.0 |
| 1. Quartile | 53.0 | 110.0 | 80.0 | 2.5 | 75.0 | 1.0 | 10.9 | 0.7 | 159000.0 | 15.0 | 33.0 | 5.0 |
| 3. Quartile | 76.0 | 138.2 | 110.0 | 6.0 | 115.0 | 3.5 | 13.7 | 1.2 | 272000.0 | 22.0 | 55.0 | 13.2 |
| Mean | 63.8 | 122.3 | 96.1 | 4.1 | 96.9 | 2.5 | 12.2 | 1.1 | 223059.1 | 18.7 | 45.5 | 14.2 |
| Median | 67.0 | 120.0 | 98.0 | 4.0 | 93.0 | 2.5 | 12.3 | 0.9 | 205000.0 | 19.0 | 42.0 | 8.0 |
| Sum | 43640.0 | 83655.0 | 65728.0 | 2811.6 | 66290.0 | 1725.0 | 8330.7 | 723.6 | 152572400.0 | 12792.1 | 31106.5 | 9708.0 |
| SE Mean | 0.6 | 0.9 | 0.8 | 0.1 | 1.3 | 0.0 | 0.1 | 0.0 | 3591.8 | 0.2 | 0.7 | 0.8 |
| LCL Mean | 62.5 | 120.6 | 94.4 | 3.9 | 94.3 | 2.4 | 12.0 | 1.0 | 216006.7 | 18.3 | 44.1 | 12.6 |
| UCL Mean | 65.1 | 124.0 | 97.8 | 4.3 | 99.5 | 2.6 | 12.3 | 1.1 | 230111.4 | 19.1 | 46.9 | 15.8 |
| Variance | 281.5 | 525.3 | 486.4 | 5.4 | 1216.7 | 1.8 | 4.8 | 0.3 | 8824376769.8 | 29.3 | 341.1 | 460.1 |
| Stdev | 16.8 | 22.9 | 22.0 | 2.3 | 34.9 | 1.3 | 2.2 | 0.6 | 93938.1 | 5.4 | 18.5 | 21.4 |
| Skewness | -0.6 | 0.1 | 0.4 | 0.3 | 0.9 | 0.5 | -0.2 | 3.9 | 1.0 | -0.1 | 1.2 | 5.2 |
| Kurtosis | -0.2 | 0.8 | 0.5 | -0.5 | 1.4 | -0.7 | -0.2 | 24.4 | 2.2 | 0.2 | 1.8 | 38.0 |
NA
#Tabla 1 - Resumen global
myvars_tab1 <- names(base_imp)
mycat_tab1 <- c("Pac_Sex", "Pac_Cobertura", "Pac_HTA", "Pac_DBT", "Pac_TBQ", "Pac_DLP", "Pac_ICC", "Pac_FA", "Pac_ETVpre", "Pac_TEPpre", "Pac_TEP_previo_menor_3_meses", "Pac_Deamb", "Pac_Reposo", "Pac_EPOC", "Pac_ACVglobal", "Pac_Hemorragia_Previa_Mayor_Todas", "Pac_Hemorragia_Previa_Mayor_Reciente", "Pac_EnfAuto", "Pac_IRCglobal", "Pac_SmeProcoag", "PESI_Cancer", "Pac_ACO_Previa", "MotInt", "PESI_Det_Sens", "PESI_Taquicardia","PESI_Hipotension", "PESI_Taquipnea", "PESI_Hipotermia", "CC_SaO90", "Pac_Cx_Total", "Biomarc_pos", "ECOTT_FSVI","ECOTT_DisfVD", "Alta_Carga_Trombo_TAC", "Int_O_Alto_Riesgo_Calc", "EstRiesgo", "ServicioCargo", "RIETE_Grupo", "ACOint", "FVCI", "Tto_Reperf", "TL_cual", "Compl_Sang_Todos", "Compl_Sang_Mayor", "Compl_Sang_Interm", "Compl_SoporteHD_NO", "Alta_Tto_TiposACO", "DOAC_si_vs_no")
no_normal <- c("Pac_Edad","CC_TAS_Ingreso", "CC_FC_Ingreso", "Wells", "PESIcalc", "RIETE_Calc", "Lab_Hb", "Lab_Cr", "Lab_Plaq", "ECOTT_TAPSE", "ECOTT_PSAP", "TiempoInt", "ClCr", "Peso", "CC_Horas_Sx_Admision", "Lab_GB", "CC_SaO_Ingreso", "CC_FR_Ingreso")
variable_rta <- "Compl_Sang_Todos"
tab1 <- CreateTableOne(vars=myvars_tab1, data = base_imp, factorVars = mycat_tab1, includeNA = F, test = T)
Warning: The data frame does not have: Pac_TEPpre RIETE_Grupo Compl_Sang_Mayor Compl_Sang_Interm Dropped
a_tab1 <- print(tab1, quote = FALSE, noSpaces = TRUE, nonnormal = no_normal,
printToggle = FALSE, formatOptions = list(big.mark = ","))
kbl(a_tab1, digits = 1, caption = " TABLA 1: Población general")%>%
kable_classic(full_width = F, html_font = "Cambria") #CAMBIA DISEÑO DE TABLA
| Overall | |
|---|---|
| n | 684 |
| Pac_Sex = Masculino (%) | 296 (43.3) |
| Pac_Edad (median [IQR]) | 67.00 [53.00, 76.00] |
| Pac_Cobertura (%) | |
| Estatal | 99 (14.5) |
| Obra Social | 307 (44.9) |
| PAMI | 82 (12.0) |
| Prepaga / Privada | 196 (28.7) |
| Pac_HTA = Si (%) | 383 (56.0) |
| Pac_DBT = Si (%) | 98 (14.3) |
| Pac_TBQ (%) | |
| Ex-tabaquista | 76 (11.1) |
| No | 420 (61.4) |
| Tabaquista | 188 (27.5) |
| Pac_DLP = Si (%) | 203 (29.7) |
| Pac_ICC = Si (%) | 78 (11.4) |
| Pac_FA = Si (%) | 48 (7.0) |
| Pac_ETVpre = Si (%) | 120 (17.5) |
| Pac_TEP_previo_menor_3_meses = Si (%) | 6 (0.9) |
| Pac_Deamb = Si (%) | 167 (24.4) |
| Pac_Reposo = Si (%) | 186 (27.2) |
| Pac_EPOC = Si (%) | 61 (8.9) |
| Pac_ACVglobal = Si (%) | 41 (6.0) |
| Pac_Hemorragia_Previa_Mayor_Todas = Si (%) | 29 (4.2) |
| Pac_Hemorragia_Previa_Mayor_Reciente = Si (%) | 19 (2.8) |
| Pac_EnfAuto = Si (%) | 35 (5.1) |
| Pac_IRCglobal = Si (%) | 54 (7.9) |
| Pac_SmeProcoag = Si (%) | 27 (3.9) |
| PESI_Cancer = Si (%) | 190 (27.8) |
| Pac_ACO_Previa = Si (%) | 64 (9.4) |
| Peso (median [IQR]) | 80.00 [70.00, 92.00] |
| IMC (mean (SD)) | 29.61 (6.47) |
| MotInt (%) | |
| Otros | 25 (3.7) |
| Patología clínica | 69 (10.1) |
| Patología quirúrgica | 63 (9.2) |
| TEP | 484 (70.8) |
| Trauma | 19 (2.8) |
| TVP | 24 (3.5) |
| PESI_Det_Sens = Si (%) | 34 (5.0) |
| CC_Horas_Sx_Admision (median [IQR]) | 48.00 [7.00, 120.00] |
| CC_FC_Ingreso (median [IQR]) | 98.00 [80.00, 110.00] |
| PESI_Taquicardia = Si (%) | 258 (37.7) |
| CC_TAS_Ingreso (median [IQR]) | 120.00 [110.00, 138.25] |
| PESI_Hipotension = Si (%) | 79 (11.5) |
| CC_FR_Ingreso (median [IQR]) | 20.00 [18.00, 25.00] |
| PESI_Taquipnea = Si (%) | 317 (46.3) |
| PESI_Hipotermia = Si (%) | 47 (6.9) |
| CC_SaO_Ingreso (median [IQR]) | 94.00 [89.75, 97.00] |
| CC_SaO90 = Si (%) | 174 (25.4) |
| Wells (median [IQR]) | 4.00 [2.50, 6.00] |
| PESIcalc (median [IQR]) | 93.00 [75.00, 115.00] |
| Pac_Cx_Total = Si (%) | 164 (24.0) |
| Lab_Hb (median [IQR]) | 12.30 [10.90, 13.70] |
| Lab_GB (median [IQR]) | 10,120.00 [7,600.00, 13,000.00] |
| Lab_Cr (median [IQR]) | 0.90 [0.72, 1.19] |
| Lab_Plaq (median [IQR]) | 205,000.00 [159,000.00, 272,000.00] |
| Biomarc_pos = Si (%) | 372 (54.4) |
| ECOTT_FSVI (%) | |
| Deprimida | 22 (3.2) |
| Leve | 42 (6.1) |
| Moderada | 17 (2.5) |
| Normal | 573 (83.8) |
| Severa | 30 (4.4) |
| ECOTT_TAPSE (median [IQR]) | 19.00 [15.00, 22.00] |
| ECOTT_PSAP (median [IQR]) | 42.00 [33.00, 55.00] |
| ECOTT_DisfVD = Si (%) | 243 (35.5) |
| Alta_Carga_Trombo_TAC = Si (%) | 595 (87.0) |
| Int_O_Alto_Riesgo_Calc = Si (%) | 428 (62.6) |
| EstRiesgo (%) | |
| Alto riesgo | 104 (15.2) |
| Bajo riesgo | 165 (24.1) |
| Intermedio-alto riesgo | 180 (26.3) |
| Intermedio-bajo riesgo | 235 (34.4) |
| ServicioCargo = Otro (%) | 168 (24.6) |
| RIETE_Calc (median [IQR]) | 2.50 [1.00, 3.50] |
| HASBLED (mean (SD)) | 1.17 (1.02) |
| ACOint = Si (%) | 661 (96.6) |
| FVCI = Si (%) | 46 (6.7) |
| Tto_Reperf = Si (%) | 91 (13.3) |
| TL_cual (%) | |
| Alteplase | 30 (4.4) |
| Estreptokinasa | 48 (7.0) |
| Ninguno | 567 (82.9) |
| No | 39 (5.7) |
| Compl_Sang_Todos = Si (%) | 57 (8.3) |
| Compl_SoporteHD_NO = Si (%) | 112 (16.4) |
| TiempoInt (median [IQR]) | 8.00 [5.00, 13.25] |
| Alta_Tto_TiposACO (%) | |
| AVK | 348 (50.9) |
| DOACs | 108 (15.8) |
| HBPM | 123 (18.0) |
| Obito | 83 (12.1) |
| Sin ACO | 22 (3.2) |
| DOAC_si_vs_no = Si (%) | 108 (15.8) |
| miss.univ (mean (SD)) | 0.00 (0.00) |
| ClCr (median [IQR]) | 78.33 [56.85, 118.06] |
| Pac_Edad_Corte = Si (%) | 199 (29.1) |
| Lab_Plaq_Corte = Si (%) | 656 (95.9) |
| TEP_motivo_int = Si (%) | 484 (70.8) |
NA
#TABLA 2 - SUBPOBLACIONES CON Y SIN COMPLICACION_SANGRADO
myvars_tab2 <- names(base_imp)
mycat_tab2 <- c("Pac_Sex", "Pac_Cobertura", "Pac_HTA", "Pac_DBT", "Pac_TBQ", "Pac_DLP", "Pac_ICC", "Pac_FA", "Pac_ETVpre", "Pac_TEPpre", "Pac_TEP_previo_menor_3_meses", "Pac_Deamb", "Pac_Reposo", "Pac_EPOC", "Pac_ACVglobal", "Pac_Hemorragia_Previa_Mayor_Todas", "Pac_Hemorragia_Previa_Mayor_Reciente", "Pac_EnfAuto", "Pac_IRCglobal", "Pac_SmeProcoag", "PESI_Cancer", "Pac_ACO_Previa", "MotInt", "PESI_Det_Sens", "PESI_Taquicardia","PESI_Hipotension", "PESI_Taquipnea", "PESI_Hipotermia", "CC_SaO90", "Pac_Cx_Total", "Biomarc_pos", "ECOTT_FSVI","ECOTT_DisfVD", "Alta_Carga_Trombo_TAC", "Int_O_Alto_Riesgo_Calc", "EstRiesgo", "ServicioCargo", "RIETE_Grupo", "ACOint", "FVCI", "Tto_Reperf", "TL_cual", "Compl_Sang_Todos", "Compl_Sang_Mayor", "Compl_Sang_Interm", "Compl_SoporteHD_NO", "Alta_Tto_TiposACO", "DOAC_si_vs_no")
norm_test<-apply(base_imp[, c("Pac_Edad","CC_TAS_Ingreso", "CC_FC_Ingreso", "Wells", "PESIcalc", "RIETE_Calc", "Lab_Hb", "Lab_Cr", "Lab_Plaq", "ECOTT_TAPSE", "ECOTT_PSAP", "TiempoInt")], 2, function(x) shapiro.test(x)$p.value)
norm_test
Pac_Edad CC_TAS_Ingreso CC_FC_Ingreso
0.000000000005850301615147456521378761550535 0.000000322218898606360984895831183968950562 0.000000432274838466870868266948325919774021
Wells PESIcalc RIETE_Calc
0.000000000083762032246184240439996491433248 0.000000000000572559265207126687417167879622 0.000000000000000000003651089523917186140279
Lab_Hb Lab_Cr Lab_Plaq
0.000216455453001795038430604689594360934279 0.000000000000000000000000000000001779773096 0.000000000000015157675650288842018655160994
ECOTT_TAPSE ECOTT_PSAP TiempoInt
0.000000883728701761579749478507823934325671 0.000000000000000001395563299981117564562582 0.000000000000000000000000000000000000000601
options(digits=3, scipen = 999)
no_normal <- c("Pac_Edad","CC_TAS_Ingreso", "CC_FC_Ingreso", "Wells", "PESIcalc", "RIETE_Calc", "Lab_Hb", "Lab_Cr", "Lab_Plaq", "ECOTT_TAPSE", "ECOTT_PSAP", "TiempoInt")
variable_rta <- "Compl_Sang_Todos"
tab2 <- CreateTableOne(vars = myvars_tab2, data = base_imp, factorVars = mycat_tab2, strata = variable_rta, includeNA = F, test = T)
Warning: The data frame does not have: Pac_TEPpre RIETE_Grupo Compl_Sang_Mayor Compl_Sang_Interm Dropped
a_tab2 <- print(tab2, quote = FALSE, noSpaces = TRUE,nonnormal = no_normal,
printToggle = FALSE, formatOptions = list(big.mark = ","))
kbl(a_tab2, digits = 1, col.names = c( "Complicación Sangrado = No", "Complicación Sangrado = Si", "p-value", "test"), caption = " TABLA 2")%>%
kable_classic(full_width = F, html_font = "Cambria")
| Complicación Sangrado = No | Complicación Sangrado = Si | p-value | test | |
|---|---|---|---|---|
| n | 627 | 57 | ||
| Pac_Sex = Masculino (%) | 268 (42.7) | 28 (49.1) | 0.429 | |
| Pac_Edad (median [IQR]) | 67.00 [53.50, 76.00] | 64.00 [52.00, 73.00] | 0.195 | nonnorm |
| Pac_Cobertura (%) | 0.260 | |||
| Estatal | 90 (14.4) | 9 (15.8) | ||
| Obra Social | 276 (44.0) | 31 (54.4) | ||
| PAMI | 75 (12.0) | 7 (12.3) | ||
| Prepaga / Privada | 186 (29.7) | 10 (17.5) | ||
| Pac_HTA = Si (%) | 354 (56.5) | 29 (50.9) | 0.501 | |
| Pac_DBT = Si (%) | 88 (14.0) | 10 (17.5) | 0.599 | |
| Pac_TBQ (%) | 0.770 | |||
| Ex-tabaquista | 70 (11.2) | 6 (10.5) | ||
| No | 387 (61.7) | 33 (57.9) | ||
| Tabaquista | 170 (27.1) | 18 (31.6) | ||
| Pac_DLP = Si (%) | 189 (30.1) | 14 (24.6) | 0.464 | |
| Pac_ICC = Si (%) | 70 (11.2) | 8 (14.0) | 0.663 | |
| Pac_FA = Si (%) | 44 (7.0) | 4 (7.0) | 1.000 | |
| Pac_ETVpre = Si (%) | 115 (18.3) | 5 (8.8) | 0.102 | |
| Pac_TEP_previo_menor_3_meses = Si (%) | 6 (1.0) | 0 (0.0) | 1.000 | |
| Pac_Deamb = Si (%) | 156 (24.9) | 11 (19.3) | 0.436 | |
| Pac_Reposo = Si (%) | 163 (26.0) | 23 (40.4) | 0.030 | |
| Pac_EPOC = Si (%) | 55 (8.8) | 6 (10.5) | 0.840 | |
| Pac_ACVglobal = Si (%) | 38 (6.1) | 3 (5.3) | 1.000 | |
| Pac_Hemorragia_Previa_Mayor_Todas = Si (%) | 28 (4.5) | 1 (1.8) | 0.529 | |
| Pac_Hemorragia_Previa_Mayor_Reciente = Si (%) | 18 (2.9) | 1 (1.8) | 0.944 | |
| Pac_EnfAuto = Si (%) | 32 (5.1) | 3 (5.3) | 1.000 | |
| Pac_IRCglobal = Si (%) | 52 (8.3) | 2 (3.5) | 0.305 | |
| Pac_SmeProcoag = Si (%) | 27 (4.3) | 0 (0.0) | 0.214 | |
| PESI_Cancer = Si (%) | 174 (27.8) | 16 (28.1) | 1.000 | |
| Pac_ACO_Previa = Si (%) | 60 (9.6) | 4 (7.0) | 0.692 | |
| Peso (mean (SD)) | 82.34 (19.69) | 83.79 (17.99) | 0.592 | |
| IMC (mean (SD)) | 29.60 (6.46) | 29.79 (6.68) | 0.826 | |
| MotInt (%) | 0.192 | |||
| Otros | 24 (3.8) | 1 (1.8) | ||
| Patología clínica | 60 (9.6) | 9 (15.8) | ||
| Patología quirúrgica | 54 (8.6) | 9 (15.8) | ||
| TEP | 450 (71.8) | 34 (59.6) | ||
| Trauma | 18 (2.9) | 1 (1.8) | ||
| TVP | 21 (3.3) | 3 (5.3) | ||
| PESI_Det_Sens = Si (%) | 31 (4.9) | 3 (5.3) | 1.000 | |
| CC_Horas_Sx_Admision (mean (SD)) | 114.51 (217.34) | 138.12 (181.06) | 0.427 | |
| CC_FC_Ingreso (median [IQR]) | 96.00 [80.00, 110.00] | 104.00 [90.00, 120.00] | 0.009 | nonnorm |
| PESI_Taquicardia = Si (%) | 228 (36.4) | 30 (52.6) | 0.022 | |
| CC_TAS_Ingreso (median [IQR]) | 120.00 [110.00, 140.00] | 120.00 [100.00, 130.00] | 0.050 | nonnorm |
| PESI_Hipotension = Si (%) | 65 (10.4) | 14 (24.6) | 0.003 | |
| CC_FR_Ingreso (mean (SD)) | 21.73 (5.35) | 22.49 (5.68) | 0.309 | |
| PESI_Taquipnea = Si (%) | 283 (45.1) | 34 (59.6) | 0.049 | |
| PESI_Hipotermia = Si (%) | 43 (6.9) | 4 (7.0) | 1.000 | |
| CC_SaO_Ingreso (mean (SD)) | 92.55 (5.55) | 90.00 (9.13) | 0.002 | |
| CC_SaO90 = Si (%) | 153 (24.4) | 21 (36.8) | 0.057 | |
| Wells (median [IQR]) | 4.00 [2.50, 6.00] | 4.50 [1.50, 6.00] | 0.901 | nonnorm |
| PESIcalc (median [IQR]) | 93.00 [75.00, 115.00] | 91.00 [75.00, 110.00] | 0.975 | nonnorm |
| Pac_Cx_Total = Si (%) | 143 (22.8) | 21 (36.8) | 0.027 | |
| Lab_Hb (median [IQR]) | 12.30 [10.95, 13.80] | 12.00 [9.00, 13.30] | 0.089 | nonnorm |
| Lab_GB (mean (SD)) | 10,994.84 (7,128.91) | 13,137.26 (8,486.09) | 0.033 | |
| Lab_Cr (median [IQR]) | 0.91 [0.72, 1.19] | 0.90 [0.70, 1.25] | 0.831 | nonnorm |
| Lab_Plaq (median [IQR]) | 205,000.00 [159,000.00, 271,000.00] | 218,000.00 [162,000.00, 272,000.00] | 0.784 | nonnorm |
| Biomarc_pos = Si (%) | 333 (53.1) | 39 (68.4) | 0.037 | |
| ECOTT_FSVI (%) | 0.942 | |||
| Deprimida | 21 (3.3) | 1 (1.8) | ||
| Leve | 38 (6.1) | 4 (7.0) | ||
| Moderada | 16 (2.6) | 1 (1.8) | ||
| Normal | 524 (83.6) | 49 (86.0) | ||
| Severa | 28 (4.5) | 2 (3.5) | ||
| ECOTT_TAPSE (median [IQR]) | 20.00 [15.00, 22.00] | 15.00 [12.00, 20.00] | <0.001 | nonnorm |
| ECOTT_PSAP (median [IQR]) | 41.00 [32.00, 54.00] | 45.00 [37.00, 60.00] | 0.015 | nonnorm |
| ECOTT_DisfVD = Si (%) | 212 (33.8) | 31 (54.4) | 0.003 | |
| Alta_Carga_Trombo_TAC = Si (%) | 546 (87.1) | 49 (86.0) | 0.973 | |
| Int_O_Alto_Riesgo_Calc = Si (%) | 385 (61.4) | 43 (75.4) | 0.051 | |
| EstRiesgo (%) | <0.001 | |||
| Alto riesgo | 82 (13.1) | 22 (38.6) | ||
| Bajo riesgo | 156 (24.9) | 9 (15.8) | ||
| Intermedio-alto riesgo | 162 (25.8) | 18 (31.6) | ||
| Intermedio-bajo riesgo | 227 (36.2) | 8 (14.0) | ||
| ServicioCargo = Otro (%) | 148 (23.6) | 20 (35.1) | 0.077 | |
| RIETE_Calc (median [IQR]) | 2.50 [1.00, 3.50] | 2.50 [1.00, 3.50] | 0.709 | nonnorm |
| HASBLED (mean (SD)) | 1.17 (1.02) | 1.18 (1.04) | 0.995 | |
| ACOint = Si (%) | 606 (96.7) | 55 (96.5) | 1.000 | |
| FVCI = Si (%) | 43 (6.9) | 3 (5.3) | 0.854 | |
| Tto_Reperf = Si (%) | 76 (12.1) | 15 (26.3) | 0.005 | |
| TL_cual (%) | <0.001 | |||
| Alteplase | 25 (4.0) | 5 (8.8) | ||
| Estreptokinasa | 39 (6.2) | 9 (15.8) | ||
| Ninguno | 532 (84.8) | 35 (61.4) | ||
| No | 31 (4.9) | 8 (14.0) | ||
| Compl_Sang_Todos = Si (%) | 0 (0.0) | 57 (100.0) | <0.001 | |
| Compl_SoporteHD_NO = Si (%) | 88 (14.0) | 24 (42.1) | <0.001 | |
| TiempoInt (median [IQR]) | 8.00 [5.00, 13.50] | 9.00 [5.00, 13.00] | 0.830 | nonnorm |
| Alta_Tto_TiposACO (%) | <0.001 | |||
| AVK | 328 (52.3) | 20 (35.1) | ||
| DOACs | 107 (17.1) | 1 (1.8) | ||
| HBPM | 109 (17.4) | 14 (24.6) | ||
| Obito | 70 (11.2) | 13 (22.8) | ||
| Sin ACO | 13 (2.1) | 9 (15.8) | ||
| DOAC_si_vs_no = Si (%) | 107 (17.1) | 1 (1.8) | 0.004 | |
| miss.univ (mean (SD)) | 0.00 (0.00) | 0.00 (0.00) | NaN | |
| ClCr (mean (SD)) | 90.89 (49.74) | 94.37 (48.43) | 0.612 | |
| Pac_Edad_Corte = Si (%) | 185 (29.5) | 14 (24.6) | 0.526 | |
| Lab_Plaq_Corte = Si (%) | 605 (96.5) | 51 (89.5) | 0.027 | |
| TEP_motivo_int = Si (%) | 450 (71.8) | 34 (59.6) | 0.076 |
NA
- A fin de detectar valores atípicos, se optó por efectuar scatterplots individuales para algunas variables clinicamente significativas agrupándolas según complicación de sangrado: edad, hemoglobina (Hb), recuento de plaquetas y score de PESI.
#ANÁLISIS GRAFICO EXPLORATORIO según COMPLICACION_SANGRADO
##Boxplot de Complicación de sangrado según RIETE calculado (RIETE_Calc)
ggplot(base_imp, aes(x=Compl_Sang_Todos, y=RIETE_Calc, fill = Compl_Sang_Todos)) +
geom_boxplot() +
geom_jitter(shape=16, position=position_jitter(0.2))
##Boxplot de Sexo según RIETE calculado (RIETE_Calc)
ggplot(base_imp, aes(x=Pac_Sex, y=RIETE_Calc, fill = Pac_Sex)) +
geom_boxplot() +
geom_jitter(shape=16, position=position_jitter(0.2))
##Boxplot de Complicación de sangrado según hemoglobina (Hb)
ggplot(base, aes(x=Compl_Sang_Todos, y=Lab_Hb, fill = Compl_Sang_Todos)) +
geom_boxplot() +
geom_jitter(shape=16, position=position_jitter(0.2))
##Boxplot de Complicación de sangrado según recuento de Plaquetas
ggplot(base_imp, aes(x=Compl_Sang_Todos, y=Lab_Plaq, fill = Compl_Sang_Todos)) +
geom_boxplot()
##Boxplot de Complicación de sangrado según score de PESI calculado (PESI_Calc)
ggplot(base_imp, aes(x=Compl_Sang_Todos, y=PESIcalc, fill = Compl_Sang_Todos)) +
geom_boxplot()
##Boxplot de Complicación de sangrado según Edad
ggplot(base_imp, aes(x=Compl_Sang_Todos, y=Pac_Edad, fill = Compl_Sang_Todos)) +
geom_boxplot() +
geom_jitter(shape=16, position=position_jitter(0.2))
NA
NA
NA
- Se observan outliers en tres variables: Lab_GB, Lab_Plaq y PESI_Calc. Específicamente, hay varios valores que superan el valor del tercer cuartil en Lab_Plaq, con individuos teniendo más de 450.000 plaquetas y varios pacientes que presentaron niveles atípicos de PESI (aproximadamente >170), y un solo valor atípico menor al primer cuartil (<25 de PESI).
- Además se ven algunso sujetos con muy alto valor de GB, por lo cual serán estudiados.
max(base_imp$Lab_Plaq, na.rm = T)
[1] 731000
max(base_imp$PESIcalc)
[1] 239
max(base_imp$Lab_GB)
[1] 108000
min((base_imp$PESIcalc))
[1] 16
library(tidyverse)
library(dplyr)
atipicos_plaq <- base_imp %>%
filter(Lab_Plaq >= 450000)
atipicos_PESI<- base_imp %>%
filter(PESIcalc >= 170) %>%
mutate(PESI = PESIcalc, Edad = Pac_Edad, Sexo = Pac_Sex,
ICC = Pac_ICC, EPOC = Pac_EPOC, FC = CC_FC_Ingreso,
TAS = CC_TAS_Ingreso, FR = CC_FR_Ingreso, Sat02 = CC_SaO_Ingreso) %>%
dplyr::select(PESI, Edad, Sexo, ICC, EPOC, FC, TAS, FR, Sat02)
atipicos_PESI2 <- base_imp %>%
filter(PESIcalc == 16)
atipicos_GB <- base_imp %>%
filter(base_imp$Lab_GB >60000)
- Se tomaron en cuenta las valores outliers (mayores al Q3) aproximados de las variables, y se estudio el caso con PESIcalc igual a 16. No se observaron casos mal cargados ni con mucha influencia por lo tanto todos estos casos se consideraron válidos y quedarán en la base de datos.
- Como primer método de análisis se elige la regresión logística univariada de todas las variables. Se utlizó un nivel de significancia de 0.2 para tener a la variable en consideración para un modelo logístico multiple.
base_univ <- base_imp
# Se convierte en factor la variable ICC
base_univ$Pac_ICC <- as.factor (base_univ$Pac_ICC)
summary(base_univ$Pac_ICC)
No Si
606 78
#Se convierte variable *Compl_Sang_Todos en factor:
logistic.display((glm(Compl_Sang_Todos ~ CC_FC_Ingreso, data = base_univ, family = binomial (link = logit))))#0.024
Logistic regression predicting Compl_Sang_Todos : Si vs No
OR(95%CI) P(Wald's test) P(LR-test)
CC_FC_Ingreso (cont. var.) 1.01 (1,1.03) 0.025 0.027
Log-likelihood = -193.7461
No. of observations = 684
AIC value = 391.4922
logistic.display(glm(Compl_Sang_Todos ~ CC_TAS_Ingreso, data = base_univ, family = binomial (link = logit)))#0.008
Logistic regression predicting Compl_Sang_Todos : Si vs No
OR(95%CI) P(Wald's test) P(LR-test)
CC_TAS_Ingreso (cont. var.) 0.98 (0.97,1) 0.007 0.007
Log-likelihood = -192.5485
No. of observations = 684
AIC value = 389.097
logistic.display(glm(Compl_Sang_Todos ~ CC_SaO_Ingreso, data = base_univ, family = binomial (link = logit)))#0.0009
Logistic regression predicting Compl_Sang_Todos : Si vs No
OR(95%CI) P(Wald's test) P(LR-test)
CC_SaO_Ingreso (cont. var.) 0.94 (0.91,0.98) 0.003 0.004
Log-likelihood = -192.1462
No. of observations = 684
AIC value = 388.2923
logistic.display(glm(Compl_Sang_Todos ~ Lab_Hb, data = base_univ, family = binomial (link = logit)))#0.02
Logistic regression predicting Compl_Sang_Todos : Si vs No
OR(95%CI) P(Wald's test) P(LR-test)
Lab_Hb (cont. var.) 0.86 (0.76,0.97) 0.016 0.016
Log-likelihood = -193.2753
No. of observations = 684
AIC value = 390.5507
logistic.display(glm(Compl_Sang_Todos ~ Lab_GB, data = base_univ, family = binomial (link = logit)))#0.04
Logistic regression predicting Compl_Sang_Todos : Si vs No
OR(95%CI) P(Wald's test) P(LR-test)
Lab_GB (cont. var.) 1 (1,1) 0.055 0.078
Log-likelihood = -194.6429
No. of observations = 684
AIC value = 393.2858
logistic.display(glm(Compl_Sang_Todos ~ CC_TAS_Ingreso, data = base_univ, family = binomial (link = logit)))#0.008
Logistic regression predicting Compl_Sang_Todos : Si vs No
OR(95%CI) P(Wald's test) P(LR-test)
CC_TAS_Ingreso (cont. var.) 0.98 (0.97,1) 0.007 0.007
Log-likelihood = -192.5485
No. of observations = 684
AIC value = 389.097
logistic.display(glm(Compl_Sang_Todos ~ CC_SaO_Ingreso, data = base_univ, family = binomial (link = logit)))#0.0009
Logistic regression predicting Compl_Sang_Todos : Si vs No
OR(95%CI) P(Wald's test) P(LR-test)
CC_SaO_Ingreso (cont. var.) 0.94 (0.91,0.98) 0.003 0.004
Log-likelihood = -192.1462
No. of observations = 684
AIC value = 388.2923
logistic.display(glm(Compl_Sang_Todos ~ PESIcalc, data = base_univ, family = binomial (link = logit)))#0.0004
Logistic regression predicting Compl_Sang_Todos : Si vs No
OR(95%CI) P(Wald's test) P(LR-test)
PESIcalc (cont. var.) 0.9991 (0.9913,1.007) 0.824 0.823
Log-likelihood = -196.1708
No. of observations = 684
AIC value = 396.3415
logistic.display(glm(Compl_Sang_Todos ~ Biomarc_pos, data = base_univ, family = binomial (link = logit)))#0.03
Logistic regression predicting Compl_Sang_Todos : Si vs No
OR(95%CI) P(Wald's test) P(LR-test)
Biomarc_pos: Si vs No 1.91 (1.07,3.42) 0.028 0.024
Log-likelihood = -193.656
No. of observations = 684
AIC value = 391.312
logistic.display(glm(Compl_Sang_Todos ~ ECOTT_DisfVD, data = base_univ, family = binomial (link = logit)))#0.008
Logistic regression predicting Compl_Sang_Todos : Si vs No
OR(95%CI) P(Wald's test) P(LR-test)
ECOTT_DisfVD: Si vs No 2.33 (1.35,4.03) 0.002 0.002
Log-likelihood = -191.5867
No. of observations = 684
AIC value = 387.1735
base_univ$Compl_Sang_Todos <- as.factor(base_univ$Compl_Sang_Todos)
summary(glm(Compl_Sang_Todos ~ Pac_ICC, data = base_univ, family = binomial (link = logit))) #0.13
Call:
glm(formula = Compl_Sang_Todos ~ Pac_ICC, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.465 -0.411 -0.411 -0.411 2.243
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.431 0.149 -16.31 <0.0000000000000002 ***
Pac_ICCSi 0.262 0.402 0.65 0.51
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.99 on 682 degrees of freedom
AIC: 396
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_Deamb, data = base_univ, family = binomial (link = logit))) #0.10
Call:
glm(formula = Compl_Sang_Todos ~ Pac_Deamb, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.432 -0.432 -0.432 -0.369 2.332
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.326 0.154 -15.06 <0.0000000000000002 ***
Pac_DeambSi -0.326 0.348 -0.94 0.35
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.47 on 682 degrees of freedom
AIC: 395.5
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_ACVglobal, data = base_univ, family = binomial (link = logit)))#0.04
Call:
glm(formula = Compl_Sang_Todos ~ Pac_ACVglobal, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.419 -0.419 -0.419 -0.419 2.287
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.389 0.142 -16.81 <0.0000000000000002 ***
Pac_ACVglobalSi -0.150 0.616 -0.24 0.81
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.33 on 682 degrees of freedom
AIC: 396.3
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_Hemorragia_Previa_Mayor_Todas, data = base_univ, family = binomial (link = logit)))#0.02
Call:
glm(formula = Compl_Sang_Todos ~ Pac_Hemorragia_Previa_Mayor_Todas,
family = binomial(link = logit), data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.423 -0.423 -0.423 -0.423 2.595
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.370 0.140 -16.96 <0.0000000000000002 ***
Pac_Hemorragia_Previa_Mayor_TodasSi -0.962 1.027 -0.94 0.35
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.21 on 682 degrees of freedom
AIC: 395.2
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_EnfAuto, data = base_univ, family = binomial (link = logit))) #0.2
Call:
glm(formula = Compl_Sang_Todos ~ Pac_EnfAuto, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.423 -0.417 -0.417 -0.417 2.230
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.3996 0.1421 -16.88 <0.0000000000000002 ***
Pac_EnfAutoSi 0.0325 0.6203 0.05 0.96
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.39 on 682 degrees of freedom
AIC: 396.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_IRCglobal, data = base_univ, family = binomial (link = logit)))#0.02
Call:
glm(formula = Compl_Sang_Todos ~ Pac_IRCglobal, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.427 -0.427 -0.427 -0.427 2.567
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.347 0.141 -16.63 <0.0000000000000002 ***
Pac_IRCglobalSi -0.911 0.734 -1.24 0.21
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 390.38 on 682 degrees of freedom
AIC: 394.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_SmeProcoag, data = base_univ, family = binomial (link = logit)))#0.22
Call:
glm(formula = Compl_Sang_Todos ~ Pac_SmeProcoag, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.426 -0.426 -0.426 -0.426 2.211
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.354 0.139 -16.98 <0.0000000000000002 ***
Pac_SmeProcoagSi -15.212 761.367 -0.02 0.98
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 387.59 on 682 degrees of freedom
AIC: 391.6
Number of Fisher Scoring iterations: 16
summary(glm(Compl_Sang_Todos ~ Pac_Cx_Total, data = base_univ, family = binomial (link = logit)))#0.02
Call:
glm(formula = Compl_Sang_Todos ~ Pac_Cx_Total, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.523 -0.379 -0.379 -0.379 2.311
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.599 0.173 -15.04 <0.0000000000000002 ***
Pac_Cx_TotalSi 0.680 0.291 2.34 0.019 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 387.22 on 682 degrees of freedom
AIC: 391.2
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ PESI_Det_Sens, data = base_univ, family = binomial (link = logit)))#0.003
Call:
glm(formula = Compl_Sang_Todos ~ PESI_Det_Sens, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.430 -0.416 -0.416 -0.416 2.231
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.4013 0.1421 -16.90 <0.0000000000000002 ***
PESI_Det_SensSi 0.0659 0.6211 0.11 0.92
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.38 on 682 degrees of freedom
AIC: 396.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ PESI_Taquicardia, data = base_univ, family = binomial (link = logit)))#0.015
Call:
glm(formula = Compl_Sang_Todos ~ PESI_Taquicardia, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.497 -0.497 -0.362 -0.362 2.349
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.693 0.199 -13.54 <0.0000000000000002 ***
PESI_TaquicardiaSi 0.665 0.278 2.39 0.017 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 386.69 on 682 degrees of freedom
AIC: 390.7
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ PESI_Hipotension, data = base_univ, family = binomial (link = logit)))#0.015
Call:
glm(formula = Compl_Sang_Todos ~ PESI_Hipotension, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.625 -0.384 -0.384 -0.384 2.300
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.570 0.158 -16.24 <0.0000000000000002 ***
PESI_HipotensionSi 1.035 0.334 3.09 0.002 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 384.06 on 682 degrees of freedom
AIC: 388.1
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ PESI_Taquipnea, data = base_univ, family = binomial (link = logit)))#0.03
Call:
glm(formula = Compl_Sang_Todos ~ PESI_Taquipnea, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.476 -0.476 -0.360 -0.360 2.354
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.705 0.215 -12.56 <0.0000000000000002 ***
PESI_TaquipneaSi 0.586 0.282 2.08 0.037 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 387.97 on 682 degrees of freedom
AIC: 392
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ PESI_Hipotermia, data = base_univ, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ PESI_Hipotermia, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.422 -0.417 -0.417 -0.417 2.230
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.3996 0.1435 -16.73 <0.0000000000000002 ***
PESI_HipotermiaSi 0.0247 0.5421 0.05 0.96
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.39 on 682 degrees of freedom
AIC: 396.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ CC_SaO90, data = base_univ, family = binomial (link = logit)))#0.05
Call:
glm(formula = Compl_Sang_Todos ~ CC_SaO90, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.507 -0.383 -0.383 -0.383 2.303
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.578 0.173 -14.91 <0.0000000000000002 ***
CC_SaO90Si 0.592 0.290 2.04 0.041 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 388.43 on 682 degrees of freedom
AIC: 392.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ CC_Horas_Sx_Admision, data = base_univ, family = binomial (link = logit)))#0.12
Call:
glm(formula = Compl_Sang_Todos ~ CC_Horas_Sx_Admision, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.631 -0.417 -0.408 -0.407 2.252
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.452547 0.157132 -15.61 <0.0000000000000002 ***
CC_Horas_Sx_Admision 0.000435 0.000550 0.79 0.43
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.83 on 682 degrees of freedom
AIC: 395.8
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ ECOTT_TAPSE, data = base_univ, family = binomial (link = logit)))#0.007
Call:
glm(formula = Compl_Sang_Todos ~ ECOTT_TAPSE, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.782 -0.447 -0.373 -0.326 2.848
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.7457 0.4435 -1.68 0.09268 .
ECOTT_TAPSE -0.0941 0.0256 -3.68 0.00024 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 378.71 on 682 degrees of freedom
AIC: 382.7
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ ECOTT_PSAP, data = base_univ, family = binomial (link = logit)))#0.005
Call:
glm(formula = Compl_Sang_Todos ~ ECOTT_PSAP, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.706 -0.430 -0.393 -0.364 2.387
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.15097 0.36085 -8.73 <0.0000000000000002 ***
ECOTT_PSAP 0.01574 0.00661 2.38 0.017 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 387.13 on 682 degrees of freedom
AIC: 391.1
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Int_O_Alto_Riesgo_Calc, data = base_univ, family = binomial (link = logit)))#0.04
Call:
glm(formula = Compl_Sang_Todos ~ Int_O_Alto_Riesgo_Calc, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.460 -0.460 -0.460 -0.335 2.411
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.850 0.275 -10.37 <0.0000000000000002 ***
Int_O_Alto_Riesgo_CalcSi 0.658 0.318 2.07 0.039 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 387.74 on 682 degrees of freedom
AIC: 391.7
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ EstRiesgo, data = base_univ, family = binomial (link = logit)))#SIG todos
Call:
glm(formula = Compl_Sang_Todos ~ EstRiesgo, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.690 -0.459 -0.335 -0.263 2.600
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.316 0.240 -5.48 0.000000043 ***
EstRiesgoBajo riesgo -1.537 0.419 -3.67 0.00024 ***
EstRiesgoIntermedio-alto riesgo -0.882 0.346 -2.55 0.01073 *
EstRiesgoIntermedio-bajo riesgo -2.030 0.432 -4.69 0.000002689 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 364.02 on 680 degrees of freedom
AIC: 372
Number of Fisher Scoring iterations: 6
summary(glm(Compl_Sang_Todos ~ ServicioCargo, data = base_univ, family = binomial (link = logit)))#0.04
Call:
glm(formula = Compl_Sang_Todos ~ ServicioCargo, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.503 -0.386 -0.386 -0.386 2.296
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.561 0.171 -15.01 <0.0000000000000002 ***
ServicioCargoOtro 0.559 0.293 1.91 0.056 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 388.93 on 682 degrees of freedom
AIC: 392.9
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ FVCI, data = base_univ, family = binomial (link = logit)))#0.0000
Call:
glm(formula = Compl_Sang_Todos ~ FVCI, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.421 -0.421 -0.421 -0.421 2.337
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.381 0.142 -16.74 <0.0000000000000002 ***
FVCISi -0.282 0.614 -0.46 0.65
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.17 on 682 degrees of freedom
AIC: 396.2
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Tto_Reperf, data = base_univ, family = binomial (link = logit)))#0.003
Call:
glm(formula = Compl_Sang_Todos ~ Tto_Reperf, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.600 -0.383 -0.383 -0.383 2.301
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.574 0.160 -16.08 <0.0000000000000002 ***
Tto_ReperfSi 0.951 0.325 2.93 0.0034 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 384.81 on 682 degrees of freedom
AIC: 388.8
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ TL_cual, data = base_univ, family = binomial (link = logit)))#SIG dudoso
Call:
glm(formula = Compl_Sang_Todos ~ TL_cual, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.678 -0.357 -0.357 -0.357 2.360
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.609 0.490 -3.29 0.001 **
TL_cualEstreptokinasa 0.143 0.614 0.23 0.816
TL_cualNinguno -1.112 0.520 -2.14 0.033 *
TL_cualNo 0.255 0.630 0.40 0.686
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 375.69 on 680 degrees of freedom
AIC: 383.7
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Compl_SoporteHD_NO, data = base_univ, family = binomial (link = logit)))#00000
Call:
glm(formula = Compl_Sang_Todos ~ Compl_SoporteHD_NO, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.695 -0.345 -0.345 -0.345 2.389
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.793 0.179 -15.58 < 0.0000000000000002 ***
Compl_SoporteHD_NOSi 1.494 0.292 5.12 0.00000031 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 368.72 on 682 degrees of freedom
AIC: 372.7
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Alta_Tto_TiposACO, data = base_univ, family = binomial (link = logit)))#SIG todos
Call:
glm(formula = Compl_Sang_Todos ~ Alta_Tto_TiposACO, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.026 -0.492 -0.344 -0.344 3.060
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.797 0.230 -12.15 < 0.0000000000000002 ***
Alta_Tto_TiposACODOACs -1.876 1.031 -1.82 0.0688 .
Alta_Tto_TiposACOHBPM 0.745 0.366 2.04 0.0416 *
Alta_Tto_TiposACOObito 1.114 0.380 2.93 0.0034 **
Alta_Tto_TiposACOSin ACO 2.430 0.491 4.95 0.00000075 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 353.45 on 679 degrees of freedom
AIC: 363.4
Number of Fisher Scoring iterations: 7
summary(glm(Compl_Sang_Todos ~ DOAC_si_vs_no, data = base_univ, family = binomial (link = logit)))#0.016
Call:
glm(formula = Compl_Sang_Todos ~ DOAC_si_vs_no, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.452 -0.452 -0.452 -0.452 3.060
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.228 0.141 -15.85 <0.0000000000000002 ***
DOAC_si_vs_noSi -2.444 1.014 -2.41 0.016 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 378.77 on 682 degrees of freedom
AIC: 382.8
Number of Fisher Scoring iterations: 7
summary(glm(Compl_Sang_Todos ~ Wells, data = base_univ, family = binomial (link = logit)))#0.005
Call:
glm(formula = Compl_Sang_Todos ~ Wells, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.427 -0.419 -0.417 -0.413 2.243
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.43015 0.28273 -8.60 <0.0000000000000002 ***
Wells 0.00781 0.05948 0.13 0.9
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.37 on 682 degrees of freedom
AIC: 396.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ TiempoInt, data = base_univ, family = binomial (link = logit)))#0.01
Call:
glm(formula = Compl_Sang_Todos ~ TiempoInt, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.417 -0.417 -0.417 -0.417 2.229
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.397895272798302723771 0.165923787216863627414 -14.4 <0.0000000000000002 ***
TiempoInt -0.000000000000000000792 0.006454429735504717269 0.0 1
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.39 on 682 degrees of freedom
AIC: 396.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ HASBLED, data = base_univ, family = binomial (link = logit))) #0.062
Call:
glm(formula = Compl_Sang_Todos ~ HASBLED, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.418 -0.417 -0.417 -0.417 2.230
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.398804 0.211572 -11.34 <0.0000000000000002 ***
HASBLED 0.000773 0.136191 0.01 1
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.39 on 682 degrees of freedom
AIC: 396.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Alta_Carga_Trombo_TAC, data = base_univ, family = binomial (link = logit))) #0.16
Call:
glm(formula = Compl_Sang_Todos ~ Alta_Carga_Trombo_TAC, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.434 -0.415 -0.415 -0.415 2.235
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.3150 0.3706 -6.25 0.00000000042 ***
Alta_Carga_Trombo_TACSi -0.0958 0.3995 -0.24 0.81
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.34 on 682 degrees of freedom
AIC: 396.3
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ ClCr, data = base_univ, family = binomial (link = logit))) #0.53
Call:
glm(formula = Compl_Sang_Todos ~ ClCr, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.489 -0.423 -0.412 -0.406 2.268
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.52418 0.28821 -8.76 <0.0000000000000002 ***
ClCr 0.00136 0.00269 0.51 0.61
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.14 on 682 degrees of freedom
AIC: 396.1
Number of Fisher Scoring iterations: 5
#NO SIGNIFICATIVAS:
summary(glm(Compl_Sang_Todos ~ Pac_Edad, data = base_univ, family = binomial (link = logit)))#0.81
Call:
glm(formula = Compl_Sang_Todos ~ Pac_Edad, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.526 -0.433 -0.404 -0.382 2.347
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.73690 0.50595 -3.43 0.0006 ***
Pac_Edad -0.01057 0.00794 -1.33 0.1834
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 390.66 on 682 degrees of freedom
AIC: 394.7
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_HTA, data = base_univ, family = binomial (link = logit)))#0.76
Call:
glm(formula = Compl_Sang_Todos ~ Pac_HTA, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.442 -0.442 -0.397 -0.397 2.272
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.277 0.198 -11.48 <0.0000000000000002 ***
Pac_HTASi -0.225 0.277 -0.81 0.42
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.73 on 682 degrees of freedom
AIC: 395.7
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_DBT, data = base_univ, family = binomial (link = logit)))#0.39
Call:
glm(formula = Compl_Sang_Todos ~ Pac_DBT, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.464 -0.409 -0.409 -0.409 2.246
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.440 0.152 -16.04 <0.0000000000000002 ***
Pac_DBTSi 0.265 0.367 0.72 0.47
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.89 on 682 degrees of freedom
AIC: 395.9
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_TBQ, data = base_univ, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Pac_TBQ, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.449 -0.406 -0.405 -0.405 2.256
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.45674 0.42538 -5.78 0.0000000077 ***
Pac_TBQNo -0.00518 0.46243 -0.01 0.99
Pac_TBQTabaquista 0.21131 0.49233 0.43 0.67
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.88 on 681 degrees of freedom
AIC: 397.9
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_DLP, data = base_univ, family = binomial (link = logit)))#0.22
Call:
glm(formula = Compl_Sang_Todos ~ Pac_DLP, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.433 -0.433 -0.433 -0.378 2.313
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.321 0.160 -14.52 <0.0000000000000002 ***
Pac_DLPSi -0.282 0.320 -0.88 0.38
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.58 on 682 degrees of freedom
AIC: 395.6
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_FA, data = base_univ, family = binomial (link = logit)))#0.29
Call:
glm(formula = Compl_Sang_Todos ~ Pac_FA, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.417 -0.417 -0.417 -0.417 2.229
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.39789527279830450 0.14346840499509481 -16.7 <0.0000000000000002 ***
Pac_FASi -0.00000000000000103 0.54158135220267112 0.0 1
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.39 on 682 degrees of freedom
AIC: 396.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_ETVpre, data = base_univ, family = binomial (link = logit)))#0.47
Call:
glm(formula = Compl_Sang_Todos ~ Pac_ETVpre, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.440 -0.440 -0.440 -0.292 2.521
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.287 0.146 -15.71 <0.0000000000000002 ***
Pac_ETVpreSi -0.848 0.479 -1.77 0.077 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 388.54 on 682 degrees of freedom
AIC: 392.5
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_TEP_previo_menor_3_meses, data = base_univ, family = binomial (link = logit)))#0.47
Call:
glm(formula = Compl_Sang_Todos ~ Pac_TEP_previo_menor_3_meses,
family = binomial(link = logit), data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.419 -0.419 -0.419 -0.419 2.225
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.388 0.138 -17.26 <0.0000000000000002 ***
Pac_TEP_previo_menor_3_mesesSi -13.178 594.164 -0.02 0.98
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.34 on 682 degrees of freedom
AIC: 395.3
Number of Fisher Scoring iterations: 14
summary(glm(Compl_Sang_Todos ~ Pac_Reposo, data = base_univ, family = binomial (link = logit)))#0.88
Call:
glm(formula = Compl_Sang_Todos ~ Pac_Reposo, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.514 -0.376 -0.376 -0.376 2.317
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.614 0.178 -14.7 <0.0000000000000002 ***
Pac_ReposoSi 0.655 0.285 2.3 0.021 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 387.33 on 682 degrees of freedom
AIC: 391.3
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_EPOC, data = base_univ, family = binomial (link = logit)))#0.66
Call:
glm(formula = Compl_Sang_Todos ~ Pac_EPOC, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.455 -0.413 -0.413 -0.413 2.237
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.417 0.146 -16.54 <0.0000000000000002 ***
Pac_EPOCSi 0.202 0.454 0.44 0.66
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.20 on 682 degrees of freedom
AIC: 396.2
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ PESI_Cancer, data = base_univ, family = binomial (link = logit)))#0.57
Call:
glm(formula = Compl_Sang_Todos ~ PESI_Cancer, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.419 -0.419 -0.416 -0.416 2.231
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.4023 0.1631 -14.73 <0.0000000000000002 ***
PESI_CancerSi 0.0159 0.3080 0.05 0.96
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.39 on 682 degrees of freedom
AIC: 396.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_ACO_Previa, data = base_univ, family = binomial (link = logit)))#0.75
Call:
glm(formula = Compl_Sang_Todos ~ Pac_ACO_Previa, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.423 -0.423 -0.423 -0.423 2.355
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.370 0.144 -16.50 <0.0000000000000002 ***
Pac_ACO_PreviaSi -0.338 0.536 -0.63 0.53
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.96 on 682 degrees of freedom
AIC: 396
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ MotInt, data = base_univ, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ MotInt, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.555 -0.382 -0.382 -0.382 2.537
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.178 1.020 -3.11 0.0018 **
MotIntPatología clínica 1.281 1.081 1.18 0.2361
MotIntPatología quirúrgica 1.386 1.082 1.28 0.2001
MotIntTEP 0.595 1.036 0.57 0.5655
MotIntTrauma 0.288 1.448 0.20 0.8425
MotIntTVP 1.232 1.193 1.03 0.3015
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 385.57 on 678 degrees of freedom
AIC: 397.6
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ ACOint, data = base_univ, family = binomial (link = logit)))#0.4108
Call:
glm(formula = Compl_Sang_Todos ~ ACOint, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.426 -0.417 -0.417 -0.417 2.230
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.3514 0.7400 -3.18 0.0015 **
ACOintSi -0.0482 0.7533 -0.06 0.9490
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.39 on 682 degrees of freedom
AIC: 396.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ IMC, data = base_univ, family = binomial (link = logit)))#0.549
Call:
glm(formula = Compl_Sang_Todos ~ IMC, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.444 -0.419 -0.415 -0.412 2.249
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.53584 0.64446 -3.93 0.000083 ***
IMC 0.00465 0.02114 0.22 0.83
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.34 on 682 degrees of freedom
AIC: 396.3
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ CC_FR_Ingreso, data = base_univ, family = binomial (link = logit)))#0.35
Call:
glm(formula = Compl_Sang_Todos ~ CC_FR_Ingreso, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.535 -0.427 -0.407 -0.397 2.392
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.9534 0.5702 -5.18 0.00000022 ***
CC_FR_Ingreso 0.0251 0.0247 1.02 0.31
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.38 on 682 degrees of freedom
AIC: 395.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Lab_Plaq, data = base_univ, family = binomial (link = logit)))#0.88
Call:
glm(formula = Compl_Sang_Todos ~ Lab_Plaq, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.430 -0.418 -0.416 -0.415 2.240
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.426699776 0.356392408 -6.81 0.0000000000098 ***
Lab_Plaq 0.000000129 0.000001466 0.09 0.93
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.38 on 682 degrees of freedom
AIC: 396.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ ECOTT_FSVI, data = base_univ, family = binomial (link = logit)))# NO SIGN
Call:
glm(formula = Compl_Sang_Todos ~ ECOTT_FSVI, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.447 -0.423 -0.423 -0.423 2.486
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.045 1.023 -2.97 0.0029 **
ECOTT_FSVILeve 0.793 1.151 0.69 0.4905
ECOTT_FSVIModerada 0.272 1.453 0.19 0.8515
ECOTT_FSVINormal 0.675 1.034 0.65 0.5141
ECOTT_FSVISevera 0.405 1.258 0.32 0.7473
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.53 on 679 degrees of freedom
AIC: 401.5
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ RIETE_Calc, data = base_univ, family = binomial (link = logit)))#0.52
Call:
glm(formula = Compl_Sang_Todos ~ RIETE_Calc, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.457 -0.428 -0.416 -0.400 2.265
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.541 0.301 -8.44 <0.0000000000000002 ***
RIETE_Calc 0.056 0.103 0.55 0.59
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.10 on 682 degrees of freedom
AIC: 396.1
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Lab_Cr, data = base_univ, family = binomial (link = logit)))#0.37
Call:
glm(formula = Compl_Sang_Todos ~ Lab_Cr, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.663 -0.419 -0.411 -0.404 2.278
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.587 0.261 -9.91 <0.0000000000000002 ***
Lab_Cr 0.174 0.199 0.88 0.38
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.70 on 682 degrees of freedom
AIC: 395.7
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Peso, data = base_univ, family = binomial (link = logit)))#0.37
Call:
glm(formula = Compl_Sang_Todos ~ Peso, family = binomial(link = logit),
data = base_univ)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.470 -0.422 -0.415 -0.404 2.280
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.70670 0.59582 -4.54 0.0000056 ***
Peso 0.00372 0.00693 0.54 0.59
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.11 on 682 degrees of freedom
AIC: 396.1
Number of Fisher Scoring iterations: 5
- Decidimos explorar las variables cuantitativas que no son significativas y realizar transformaciones para ver si se ajustan a un modelo de regresión logística. Para ello verificamos primero cuales no cumplen el supuesto de linealidad de los logits
base_logit <- base_imp[,!names(base_imp) %in% c("TEP_motivo_int", "miss.univ","DOAC_si_vs_no")]
m_logits <- glm (Compl_Sang_Todos ~. , data = base_logit, family = binomial (link = logit))
Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
# Predict the probability (p) of diabete positivity
probabilities <- predict(m_logits, type = "response")
predicted.classes <- ifelse(probabilities > 0.3, "pos", "neg")
head(predicted.classes)
1 2 3 4 5 6
"pos" "neg" "pos" "neg" "neg" "neg"
#1) Remove qualitative variables from the original data frame and bind the logit values to the data:
# Select only numeric predictors
mydata <- base_logit %>%
dplyr::select_if(is.numeric)
predictors <- colnames(mydata)
# Bind the logit and tidying the data for plot
mydata <- mydata %>%
mutate(logit = log(probabilities/(1-probabilities))) %>%
gather(key = "predictors", value = "predictor.value", -logit)
#2)
ggplot(mydata, aes(predictor.value, logit))+
geom_point(size = 0.5, alpha = 0.3) +
geom_smooth(method = "loess") +
theme_bw() +
facet_wrap(~predictors, scales = "free_x")
#realizamos transformaciones logisticas de las variables ClCr, Plaquetas, Peso, Saturacion O2, GB
base_logit2 <- base_logit
base_logit2$Log_FC<- log(base_logit2$CC_FC_Ingreso)
base_logit2$Log_TAS<- log(base_logit2$CC_TAS_Ingreso)
base_logit2$Log_ClCr<- log(base_logit2$ClCr)
base_logit2$Log_CC_SaO_Ingreso<- log(base_logit2$CC_SaO_Ingreso)
base_logit2$Log_Lab_Plaq<- log(base_logit2$Lab_Plaq)
base_logit2$Log_Lab_GB<- log(base_logit2$Lab_GB)
base_logit2$Log_Peso<- log(base_logit2$Peso)
base_logit2$Dias_Sx_Admision <- base_logit2$CC_Horas_Sx_Admision/24
base_logit2 <- base_logit2[,!names(base_logit2) %in% c("ClCr", "CC_SaO_Ingreso", "Lab_Plaq", "Lab_GB", "Peso", "CC_Horas_Sx_Admision", "CC_FC_Ingreso", "CC_TAS_Ingreso")]
base_logit2$Compl_Sang_Todos <- as.factor(base_logit2$Compl_Sang_Todos)
levels(base_logit2$Compl_Sang_Todos) <- c("No", "Si")
#corremos devuelta el gráfico
m_logits2 <- glm (Compl_Sang_Todos ~. , data = base_logit2, family = binomial (link = logit))
Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
str(base_logit2)
'data.frame': 684 obs. of 65 variables:
$ Pac_Sex : Factor w/ 2 levels "Femenino","Masculino": 1 2 2 1 2 2 1 1 2 2 ...
$ Pac_Edad : num 82 29 50 82 75 73 79 73 75 65 ...
$ Pac_Cobertura : Factor w/ 4 levels "Estatal","Obra Social",..: 2 1 2 3 4 2 3 3 2 2 ...
$ Pac_HTA : Factor w/ 2 levels "No","Si": 2 1 1 2 2 2 2 1 2 2 ...
$ Pac_DBT : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 2 ...
$ Pac_TBQ : Factor w/ 3 levels "Ex-tabaquista",..: 2 2 2 2 3 2 2 2 3 2 ...
$ Pac_DLP : Factor w/ 2 levels "No","Si": 2 1 1 1 2 2 1 2 1 2 ...
$ Pac_ICC : Factor w/ 2 levels "No","Si": 1 2 1 1 1 1 2 1 2 1 ...
$ Pac_FA : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 2 1 1 1 ...
$ Pac_ETVpre : Factor w/ 2 levels "No","Si": 1 2 1 1 1 1 1 1 1 1 ...
$ Pac_TEP_previo_menor_3_meses : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
$ Pac_Deamb : Factor w/ 2 levels "Ninguna","Si": 1 1 1 2 1 1 1 1 1 2 ...
$ Pac_Reposo : Factor w/ 2 levels "No","Si": 1 1 2 1 1 2 1 1 2 1 ...
$ Pac_EPOC : Factor w/ 2 levels "No","Si": 1 1 1 1 2 1 1 1 1 1 ...
$ Pac_ACVglobal : Factor w/ 2 levels "No","Si": 1 1 2 1 1 1 1 1 1 1 ...
$ Pac_Hemorragia_Previa_Mayor_Todas : Factor w/ 2 levels "No","Si": 1 1 2 1 1 1 1 1 1 1 ...
$ Pac_Hemorragia_Previa_Mayor_Reciente: Factor w/ 2 levels "No","Si": 1 1 2 1 1 1 1 1 1 1 ...
$ Pac_EnfAuto : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 2 ...
$ Pac_IRCglobal : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
$ Pac_SmeProcoag : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
$ PESI_Cancer : Factor w/ 2 levels "No","Si": 2 1 1 1 2 1 1 2 2 1 ...
$ Pac_ACO_Previa : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 2 1 1 1 ...
$ IMC : num 29.3 27.7 26.4 23.4 31.1 ...
$ MotInt : Factor w/ 6 levels "Otros","Patología clínica",..: 4 4 3 5 4 4 1 2 4 2 ...
$ PESI_Det_Sens : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
$ PESI_Taquicardia : Factor w/ 2 levels "No","Si": 2 1 1 1 2 1 1 2 1 1 ...
$ PESI_Hipotension : Factor w/ 2 levels "No","Si": 1 1 1 1 1 2 1 2 1 1 ...
$ CC_FR_Ingreso : num 26 24 18 25 36 15 18 32 18 16 ...
$ PESI_Taquipnea : Factor w/ 2 levels "No","Si": 2 2 1 2 2 1 1 2 1 1 ...
$ PESI_Hipotermia : Factor w/ 2 levels "No","Si": 2 1 1 1 1 2 1 1 1 1 ...
$ CC_SaO90 : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 2 1 1 ...
$ Wells : num 5.5 0 6 3 4.5 4.5 6 2.5 3 1 ...
$ PESIcalc : num 53 54 119 80 90 42 120 102 67 160 ...
$ Pac_Cx_Total : Factor w/ 2 levels "No","Si": 1 1 1 1 2 1 1 1 1 2 ...
$ Lab_Hb : num 12 11.9 12 14.9 14.6 11.4 9.9 12.5 12.7 12.7 ...
$ Lab_Cr : num 3 0.77 0.8 0.68 0.9 0.7 0.68 0.4 0.95 0.95 ...
$ Biomarc_pos : Factor w/ 2 levels "No","Si": 1 2 2 2 2 2 2 1 1 1 ...
$ ECOTT_FSVI : Factor w/ 5 levels "Deprimida","Leve",..: 4 4 4 4 4 4 4 4 4 5 ...
$ ECOTT_TAPSE : num 19 24 15 21 18 22 13 9 16 25 ...
$ ECOTT_PSAP : num 35 38 55 33 18 30 70 48 47 35 ...
$ ECOTT_DisfVD : Factor w/ 2 levels "No","Si": 1 1 2 1 1 1 1 2 1 1 ...
$ Alta_Carga_Trombo_TAC : Factor w/ 2 levels "No","Si": 2 2 2 2 2 2 2 2 2 2 ...
$ Int_O_Alto_Riesgo_Calc : Factor w/ 2 levels "No","Si": 1 2 2 2 2 2 2 2 1 1 ...
$ EstRiesgo : Factor w/ 4 levels "Alto riesgo",..: 2 4 3 4 4 4 4 1 4 2 ...
$ ServicioCargo : Factor w/ 2 levels "Cardiología",..: 2 2 1 2 1 1 1 2 2 2 ...
$ RIETE_Calc : num 2.5 3.5 2 2 2 1 3.5 2 5 4 ...
$ HASBLED : num 2 2 1 0 2 3 1 2 2 0 ...
$ ACOint : Factor w/ 2 levels "No","Si": 2 2 2 2 2 1 2 2 2 2 ...
$ FVCI : Factor w/ 2 levels "No","Si": 1 1 1 1 1 2 1 1 1 1 ...
$ Tto_Reperf : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
$ TL_cual : Factor w/ 4 levels "Alteplase","Estreptokinasa",..: 3 3 3 3 3 3 4 3 3 3 ...
$ Compl_Sang_Todos : Factor w/ 2 levels "No","Si": 1 1 2 1 1 1 1 2 1 1 ...
$ Compl_SoporteHD_NO : Factor w/ 2 levels "No","Si": 2 1 1 1 1 1 1 2 1 1 ...
$ TiempoInt : num 5 3 18 68 11 36 54 46 11 11 ...
$ Alta_Tto_TiposACO : Factor w/ 5 levels "AVK","DOACs",..: 3 1 3 1 1 3 5 1 2 2 ...
$ Pac_Edad_Corte : chr "Si" "No" "No" "Si" ...
$ Lab_Plaq_Corte : chr "No" "No" "No" "No" ...
$ Log_FC : num 4.7 4.47 4.61 4.56 4.74 ...
$ Log_TAS : num 4.67 4.87 4.79 4.79 4.7 ...
$ Log_ClCr : num 2.9 5.08 5.23 4.32 4.5 ...
$ Log_CC_SaO_Ingreso : num 4.6 4.54 4.55 4.53 4.53 ...
$ Log_Lab_Plaq : num 9.78 9.8 10.09 10.13 10.31 ...
$ Log_Lab_GB : num 9.54 9.15 9.18 9.44 9.45 ...
$ Log_Peso : num 4.38 4.38 4.79 4.32 4.5 ...
$ Dias_Sx_Admision : num 7 0.5 10 3 2 0.125 1 4 4 5 ...
# Predict the probability (p) of diabete positivity
probabilities2 <- predict(m_logits2, type = "response")
predicted.classes2 <- ifelse(probabilities2 > 0.3, "pos", "neg")
head(predicted.classes2)
1 2 3 4 5 6
"pos" "neg" "pos" "neg" "neg" "neg"
#1) Remove qualitative variables from the original data frame and bind the logit values to the data:
# Select only numeric predictors
nombres <- c("Edad", "Frec. resp. al ingreso", "Hemoglobina", "TAPSE", "PSAP", "Logaritmo FC", "Logaritmo TAS", "Logaritmo ClCr", "Logaritmo Sat O2", "Logaritmo plaquetas", "Logaritmo GB", "Logaritmo Peso", "Dias desde inicio de sintomas hasta consulta")
mydata2 <- base_logit2 %>%
dplyr::select_if(is.numeric)
predictors <- colnames(nombres)
# Bind the logit and tidying the data for plot
mydata2 <- mydata2 %>%
mutate(logit = log(probabilities2/(1-probabilities2))) %>%
gather(key = "predictors", value = "predictor.value", -logit)
#2)
ggplot(mydata2, aes(predictor.value, logit))+
geom_point(size = 0.5, alpha = 0.5) +
geom_smooth(method = "loess") +
theme_bw() +
facet_wrap(~predictors, scales = "free_x")
Al realizar trasnformaciones logaritmicas, se ve que se respeta la linealidad de los logits, excepto en las siguientes variables: Globulos blancos, frecuencia cardíaca, frecuencia respiratoria y clearence de creatinina. Frecuencia respiratoria no se pudo transformar por la presencia de un valor = “0”, que correspondiente a un paciente en paro cardiorrespiratorio.
#valores influentes
plot(m_logits2, which = 4, id.n = 3)
model.data <- augment(m_logits2) %>% dplyr::mutate(index = 1:n())
model.data %>% top_n(3, .cooksd)
ggplot(model.data, aes(index, .std.resid)) +
geom_point(aes(color = m_logits2$Compl_Sang_Todos), alpha = .5) +
theme_bw()
model.data %>%
filter(abs(.std.resid) > 3)
#hay un solo valor influyente
#multicolinealidad
car::vif(m_logits2) #Se evidencia multicolinealidad en las variables transformadas y en los scores, por lo cuál los sacamos y volvemos a evaluar.
GVIF Df GVIF^(1/(2*Df))
Pac_Sex 2.00 1 1.41
Pac_Edad 4.98 1 2.23
Pac_Cobertura 3.36 3 1.22
Pac_HTA 1.70 1 1.30
Pac_DBT 1.59 1 1.26
Pac_TBQ 2.51 2 1.26
Pac_DLP 1.72 1 1.31
Pac_ICC 1.84 1 1.36
Pac_FA 1.81 1 1.34
Pac_ETVpre 1.51 1 1.23
Pac_TEP_previo_menor_3_meses 1.00 1 1.00
Pac_Deamb 1.52 1 1.23
Pac_Reposo 1.54 1 1.24
Pac_EPOC 1.69 1 1.30
Pac_ACVglobal 1.76 1 1.33
Pac_Hemorragia_Previa_Mayor_Todas 1729063.37 1 1314.94
Pac_Hemorragia_Previa_Mayor_Reciente 1729063.45 1 1314.94
Pac_EnfAuto 1.34 1 1.16
Pac_IRCglobal 1.44 1 1.20
Pac_SmeProcoag 1.00 1 1.00
PESI_Cancer 1.54 1 1.24
Pac_ACO_Previa 1.78 1 1.33
IMC 1.73 1 1.31
MotInt 7.30 5 1.22
PESI_Det_Sens 1.43 1 1.20
PESI_Taquicardia 3.73 1 1.93
PESI_Hipotension 4.38 1 2.09
CC_FR_Ingreso 4.02 1 2.01
PESI_Taquipnea 3.82 1 1.95
PESI_Hipotermia 1.57 1 1.25
CC_SaO90 3.24 1 1.80
Wells 1.51 1 1.23
PESIcalc 1.59 1 1.26
Pac_Cx_Total 1.53 1 1.24
Lab_Hb 1.78 1 1.33
Lab_Cr 8.16 1 2.86
Biomarc_pos 6.04 1 2.46
ECOTT_FSVI 6.57 4 1.27
ECOTT_TAPSE 3.04 1 1.74
ECOTT_PSAP 2.17 1 1.47
ECOTT_DisfVD 3.90 1 1.98
Alta_Carga_Trombo_TAC 1.47 1 1.21
Int_O_Alto_Riesgo_Calc 7.62 1 2.76
EstRiesgo 10.02 3 1.47
ServicioCargo 2.04 1 1.43
RIETE_Calc 1.77 1 1.33
HASBLED 1.64 1 1.28
ACOint 1.24 1 1.11
FVCI 1.27 1 1.13
Tto_Reperf 15.75 1 3.97
TL_cual 48.05 3 1.91
Compl_SoporteHD_NO 2.57 1 1.60
TiempoInt 1.70 1 1.30
Alta_Tto_TiposACO 8.91 4 1.31
Pac_Edad_Corte 2.83 1 1.68
Lab_Plaq_Corte 3.71 1 1.93
Log_FC 3.99 1 2.00
Log_TAS 3.84 1 1.96
Log_ClCr 12.55 1 3.54
Log_CC_SaO_Ingreso 3.46 1 1.86
Log_Lab_Plaq 3.41 1 1.85
Log_Lab_GB 1.77 1 1.33
Log_Peso 3.27 1 1.81
Dias_Sx_Admision 1.48 1 1.22
base_vif <- base_imp[,!names(base_imp) %in% c("TEP_motivo_int", "miss.univ","DOAC_si_vs_no", "Pac_Cobertura", "Pac_Hemorragia_Previa_Mayor_Reciente", "PESIcalc", "Lab_Cr", "Int_O_Alto_Riesgo_Calc", "RIETE_Calc", "TL_cual", "Lab_Plaq_Corte", "PESI_Taquicardia", "PESI_Taquipnea", "PESI_Hipotension", "CC_SaO90", "EstRiesgo", "MotInt")]
m_vif <- glm (Compl_Sang_Todos ~. , data = base_vif, family = binomial (link = logit))
Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
car::vif(m_vif)
GVIF Df GVIF^(1/(2*Df))
Pac_Sex 1.53 1 1.24
Pac_Edad 2.86 1 1.69
Pac_HTA 1.48 1 1.22
Pac_DBT 1.33 1 1.15
Pac_TBQ 1.85 2 1.17
Pac_DLP 1.39 1 1.18
Pac_ICC 1.37 1 1.17
Pac_FA 1.50 1 1.23
Pac_ETVpre 1.39 1 1.18
Pac_TEP_previo_menor_3_meses 1.00 1 1.00
Pac_Deamb 1.29 1 1.14
Pac_Reposo 1.17 1 1.08
Pac_EPOC 1.45 1 1.20
Pac_ACVglobal 1.45 1 1.20
Pac_Hemorragia_Previa_Mayor_Todas 1.26 1 1.12
Pac_EnfAuto 1.19 1 1.09
Pac_IRCglobal 1.24 1 1.11
Pac_SmeProcoag 1.00 1 1.00
PESI_Cancer 1.33 1 1.15
Pac_ACO_Previa 1.53 1 1.24
Peso 1.55 1 1.25
IMC 1.40 1 1.18
PESI_Det_Sens 1.25 1 1.12
CC_Horas_Sx_Admision 1.21 1 1.10
CC_FC_Ingreso 1.53 1 1.24
CC_TAS_Ingreso 1.50 1 1.22
CC_FR_Ingreso 1.61 1 1.27
PESI_Hipotermia 1.23 1 1.11
CC_SaO_Ingreso 1.55 1 1.25
Wells 1.18 1 1.09
Pac_Cx_Total 1.32 1 1.15
Lab_Hb 1.36 1 1.17
Lab_GB 1.22 1 1.10
Lab_Plaq 1.33 1 1.15
Biomarc_pos 1.52 1 1.23
ECOTT_FSVI 2.85 4 1.14
ECOTT_TAPSE 2.62 1 1.62
ECOTT_PSAP 1.74 1 1.32
ECOTT_DisfVD 2.93 1 1.71
Alta_Carga_Trombo_TAC 1.30 1 1.14
ServicioCargo 1.49 1 1.22
HASBLED 1.17 1 1.08
ACOint 1.19 1 1.09
FVCI 1.18 1 1.08
Tto_Reperf 1.77 1 1.33
Compl_SoporteHD_NO 1.93 1 1.39
TiempoInt 1.24 1 1.11
Alta_Tto_TiposACO 3.70 4 1.18
ClCr 2.03 1 1.42
Pac_Edad_Corte 2.17 1 1.47
. Se evidencia colinealidad significativa en algunas variables que son las que se utilizan para formular scores (PESI, RIETE) y también para ClCr. Al sacar estas variables transformadas y scores no vemos colinealidad significativa, excepto para las variables “Alta_Tto_Tipos_ACO” (Tipo de ACO al alta), “MotInt” (Motivo de internación) y EstRiesgo (Estratificación de riesgo por ESC). Lo tendremos en cuenta a la hora de seleccionar variables para los modelos de regresión.
. Solamente evidenciamos 1 valor influyente.
. Evaluaremos si separando a los pacientes en cuartiles o terciles podemos obtener rendimiento de las variables FR, FC, TAS, globulos blancos y clearence de creatinina. Además exploraremos las variables plaquetas y la variable edad, que no tienen pendiente en la curva de logits (lo cuál explica que no sean significativas en un modelo univariado) para ver si hay algún subgrupo donde se evidencie relación con la variable respuesta.
base_sens <- base_logit2
base_sens$Compl_Sang_Todos <- as.factor(base_sens$Compl_Sang_Todos)
summary(base_sens$Pac_Edad)
Min. 1st Qu. Median Mean 3rd Qu. Max.
16.0 53.0 67.0 63.8 76.0 97.0
base_sens$Pac_Edad_Corte<-cut(base_sens$Pac_Edad,breaks=seq(16,97,length.out=5))
table(base_sens$Pac_Edad_Corte)
(16,36.2] (36.2,56.5] (56.5,76.8] (76.8,97]
54 147 318 163
clases_edad <- cut(base_sens$Pac_Edad,breaks=seq(16,97,length.out=10))
table(clases_edad)
clases_edad
(16,25] (25,34] (34,43] (43,52] (52,61] (61,70] (70,79] (79,88] (88,97]
16 30 52 67 84 159 153 98 23
medias_edad<-tapply(base_sens$Pac_Edad,INDEX=clases_edad,FUN=mean)
base_sens$Compl_Sang_Todos <- as.integer(base_sens$Compl_Sang_Todos)
sumaYporClases_edad<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_edad,FUN=sum)
sumaYporClases_edad
(16,25] (25,34] (34,43] (43,52] (52,61] (61,70] (70,79] (79,88] (88,97]
18 32 55 74 94 172 167 102 24
pEstimado_edad<-as.vector(sumaYporClases_edad/table(clases_edad))
pEstimado_edad <- pEstimado_edad -1
logit_edad<-log(pEstimado_edad/(1-(pEstimado_edad)))
str(logit_edad)
num [1:9] -1.95 -2.64 -2.79 -2.15 -2 ...
plot(medias_edad,logit_edad,xlab="Media de Edad por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Edad con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en terciles y hago graficos
base_sens$Pac_Edad_Terc <- ntile(base_sens$Pac_Edad, 3)
clases_edad_terc<-base_sens$Pac_Edad_Terc
table(clases_edad_terc)
clases_edad_terc
1 2 3
228 228 228
medias_edad_terc<-tapply(base_sens$Pac_Edad,INDEX=clases_edad_terc,FUN=mean)
sumaYporClases_edad_terc<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_edad_terc,FUN=sum)
sumaYporClases_edad_terc
1 2 3
252 246 243
pEstimado_edad_terc<-as.vector(sumaYporClases_edad_terc/table(clases_edad_terc))
pEstimado_edad_terc <- pEstimado_edad_terc -1
logit_edad_terc<-log(pEstimado_edad_terc/(1-(pEstimado_edad_terc)))
plot(medias_edad_terc,logit_edad_terc,xlab="Media de Edad por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Edad terciles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en cuartiles y hago graficos
base_sens$Pac_Edad_Cuart <- ntile(base_sens$Pac_Edad, 4)
clases_edad_Cuart<-base_sens$Pac_Edad_Cuart
table(clases_edad_Cuart)
clases_edad_Cuart
1 2 3 4
171 171 171 171
medias_edad_Cuart<-tapply(base_sens$Pac_Edad,INDEX=clases_edad_Cuart,FUN=mean)
sumaYporClases_edad_Cuart<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_edad_Cuart,FUN=sum)
sumaYporClases_edad_Cuart
1 2 3 4
187 188 183 183
pEstimado_edad_Cuart<-as.vector(sumaYporClases_edad_Cuart/table(clases_edad_Cuart))
pEstimado_edad_Cuart <- pEstimado_edad_Cuart -1
logit_edad_Cuart<-log(pEstimado_edad_Cuart/(1-(pEstimado_edad_Cuart)))
plot(medias_edad_Cuart,logit_edad_Cuart,xlab="Media de Edad por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Edad cuartiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en quintiles y hago graficos
base_sens$Pac_Edad_Quint <- ntile(base_sens$Pac_Edad, 5)
clases_edad_Quint<-base_sens$Pac_Edad_Quint
table(clases_edad_Quint)
clases_edad_Quint
1 2 3 4 5
137 137 137 137 136
medias_edad_Quint<-tapply(base_sens$Pac_Edad,INDEX=clases_edad_Quint,FUN=mean)
sumaYporClases_edad_Quint<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_edad_Quint,FUN=sum)
sumaYporClases_edad_Quint
1 2 3 4 5
149 152 148 146 146
pEstimado_edad_Quint<-as.vector(sumaYporClases_edad_Quint/table(clases_edad_Quint))
pEstimado_edad_Quint <- pEstimado_edad_Quint -1
logit_edad_Quint<-log(pEstimado_edad_Quint/(1-(pEstimado_edad_Quint)))
plot(medias_edad_Quint,logit_edad_Quint,xlab="Media de Edad por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Edad quintiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en dos y hago graficos
base_sens$Pac_Edad_Binom <- ntile(base_sens$Pac_Edad, 2)
clases_edad_Binom<-base_sens$Pac_Edad_Binom
table(clases_edad_Binom)
clases_edad_Binom
1 2
342 342
medias_edad_Binom<-tapply(base_sens$Pac_Edad,INDEX=clases_edad_Binom,FUN=mean)
sumaYporClases_edad_Binom<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_edad_Binom,FUN=sum)
sumaYporClases_edad_Binom
1 2
375 366
pEstimado_edad_Binom<-as.vector(sumaYporClases_edad_Binom/table(clases_edad_Binom))
pEstimado_edad_Binom <- pEstimado_edad_Binom -1
logit_edad_Binom<-log(pEstimado_edad_Binom/(1-(pEstimado_edad_Binom)))
plot(medias_edad_Binom,logit_edad_Binom,xlab="Media de Edad por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Edad dos grupos con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
base_sens$Compl_Sang_Todos <- as.factor(base_sens$Compl_Sang_Todos)
summary(base_sens$CC_FR_Ingreso)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0 18.0 20.0 21.8 25.0 43.0
base_sens$CC_FR_Ingreso_Corte<-cut(base_sens$CC_FR_Ingreso,breaks=seq(0,43,length.out=5))
table(base_sens$CC_FR_Ingreso_Corte)
(0,10.8] (10.8,21.5] (21.5,32.2] (32.2,43]
3 368 287 25
clases_fr <- cut(base_sens$CC_FR_Ingreso,breaks=seq(0,43,length.out=10))
table(clases_fr)
clases_fr
(0,4.78] (4.78,9.56] (9.56,14.3] (14.3,19.1] (19.1,23.9] (23.9,28.7] (28.7,33.4] (33.4,38.2] (38.2,43]
0 2 26 213 195 177 50 12 8
medias_fr<-tapply(base_sens$CC_FR_Ingreso,INDEX=clases_fr,FUN=mean)
base_sens$Compl_Sang_Todos <- as.integer(base_sens$Compl_Sang_Todos)
sumaYporClases_fr<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_fr,FUN=sum)
sumaYporClases_fr
(0,4.78] (4.78,9.56] (9.56,14.3] (14.3,19.1] (19.1,23.9] (23.9,28.7] (28.7,33.4] (33.4,38.2] (38.2,43]
NA 3 28 227 206 201 53 13 9
pEstimado_fr<-as.vector(sumaYporClases_fr/table(clases_fr))
pEstimado_fr <- pEstimado_fr -1
logit_fr<-log(pEstimado_fr/(1-(pEstimado_fr)))
plot(medias_fr,logit_fr,xlab="Media de FR por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: FR con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en terciles y hago graficos
base_sens$CC_FR_Ingreso_Terc <- ntile(base_sens$CC_FR_Ingreso, 3)
clases_fr_terc<-base_sens$CC_FR_Ingreso_Terc
table(clases_fr_terc)
clases_fr_terc
1 2 3
228 228 228
medias_fr_terc<-tapply(base_sens$CC_FR_Ingreso,INDEX=clases_fr_terc,FUN=mean)
sumaYporClases_fr_terc<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_fr_terc,FUN=sum)
sumaYporClases_fr_terc
1 2 3
244 244 253
pEstimado_fr_terc<-as.vector(sumaYporClases_fr_terc/table(clases_fr_terc))
pEstimado_fr_terc <- pEstimado_fr_terc -1
logit_fr_terc<-log(pEstimado_fr_terc/(1-(pEstimado_fr_terc)))
plot(medias_fr_terc,logit_fr_terc,xlab="Media de FR por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: FR terciles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en cuartiles y hago graficos
base_sens$CC_FR_Ingreso_Cuart <- ntile(base_sens$CC_FR_Ingreso, 4)
clases_fr_Cuart<-base_sens$CC_FR_Ingreso_Cuart
table(clases_fr_Cuart)
clases_fr_Cuart
1 2 3 4
171 171 171 171
medias_fr_Cuart<-tapply(base_sens$CC_FR_Ingreso,INDEX=clases_fr_Cuart,FUN=mean)
sumaYporClases_fr_Cuart<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_fr_Cuart,FUN=sum)
sumaYporClases_fr_Cuart
1 2 3 4
181 183 191 186
pEstimado_fr_Cuart<-as.vector(sumaYporClases_fr_Cuart/table(clases_fr_Cuart))
pEstimado_fr_Cuart <- pEstimado_fr_Cuart -1
logit_fr_Cuart<-log(pEstimado_fr_Cuart/(1-(pEstimado_fr_Cuart)))
plot(medias_fr_Cuart,logit_fr_Cuart,xlab="Media de FR por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: FR cuartiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en quintiles y hago graficos
base_sens$CC_FR_Ingreso_Quint <- ntile(base_sens$CC_FR_Ingreso, 5)
clases_fr_Quint<-base_sens$CC_FR_Ingreso_Quint
table(clases_fr_Quint)
clases_fr_Quint
1 2 3 4 5
137 137 137 137 136
medias_fr_Quint<-tapply(base_sens$CC_FR_Ingreso,INDEX=clases_fr_Quint,FUN=mean)
sumaYporClases_fr_Quint<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_fr_Quint,FUN=sum)
sumaYporClases_fr_Quint
1 2 3 4 5
146 146 144 158 147
pEstimado_fr_Quint<-as.vector(sumaYporClases_fr_Quint/table(clases_fr_Quint))
pEstimado_fr_Quint <- pEstimado_fr_Quint -1
logit_fr_Quint<-log(pEstimado_fr_Quint/(1-(pEstimado_fr_Quint)))
plot(medias_fr_Quint,logit_fr_Quint,xlab="Media de FR por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: FR quintiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en dos y hago graficos
summary(base_sens$CC_FR_Ingreso)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0 18.0 20.0 21.8 25.0 43.0
base_sens$CC_FR_Ingreso_Binom <- ntile(base_sens$CC_FR_Ingreso, 2)
clases_fr_Binom<-base_sens$CC_FR_Ingreso_Binom
table(clases_fr_Binom)
clases_fr_Binom
1 2
342 342
medias_fr_Binom<-tapply(base_sens$CC_FR_Ingreso,INDEX=clases_fr_Binom,FUN=mean)
sumaYporClases_fr_Binom<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_fr_Binom,FUN=sum)
sumaYporClases_fr_Binom
1 2
364 377
pEstimado_fr_Binom<-as.vector(sumaYporClases_fr_Binom/table(clases_fr_Binom))
pEstimado_fr_Binom <- pEstimado_fr_Binom -1
logit_fr_Binom<-log(pEstimado_fr_Binom/(1-(pEstimado_fr_Binom)))
plot(medias_fr_Binom,logit_fr_Binom,xlab="Media de FR por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: FR dos grupos con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
base_sens$Compl_Sang_Todos <- as.factor(base_sens$Compl_Sang_Todos)
summary(base_sens$Log_FC)
Min. 1st Qu. Median Mean 3rd Qu. Max.
3.40 4.38 4.58 4.54 4.70 5.19
base_sens$Log_FC_Corte<-cut(base_sens$Log_FC,breaks=seq(3.4,5.19,length.out=5))
table(base_sens$Log_FC_Corte)
(3.4,3.85] (3.85,4.29] (4.29,4.74] (4.74,5.19]
3 99 451 128
clases_FC <- cut(base_sens$Log_FC,breaks=seq(3.4,5.19,length.out=10))
table(clases_FC)
clases_FC
(3.4,3.6] (3.6,3.8] (3.8,4] (4,4.2] (4.2,4.39] (4.39,4.59] (4.59,4.79] (4.79,4.99] (4.99,5.19]
2 1 6 45 152 144 264 54 13
medias_FC<-tapply(base_sens$Log_FC,INDEX=clases_FC,FUN=mean)
base_sens$Compl_Sang_Todos <- as.integer(base_sens$Compl_Sang_Todos)
sumaYporClases_FC<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_FC,FUN=sum)
sumaYporClases_FC
(3.4,3.6] (3.6,3.8] (3.8,4] (4,4.2] (4.2,4.39] (4.39,4.59] (4.59,4.79] (4.79,4.99] (4.99,5.19]
3 1 7 47 160 153 288 64 15
pEstimado_FC<-as.vector(sumaYporClases_FC/table(clases_FC))
pEstimado_FC <- pEstimado_FC -1
logit_FC<-log(pEstimado_FC/(1-(pEstimado_FC)))
plot(medias_FC,logit_FC,xlab="Media de FC por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: FC con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en terciles y hago graficos
base_sens$Log_FC_Terc <- ntile(base_sens$Log_FC, 3)
clases_FC_terc<-base_sens$Log_FC_Terc
table(clases_FC_terc)
clases_FC_terc
1 2 3
228 228 228
medias_FC_terc<-tapply(base_sens$Log_FC,INDEX=clases_FC_terc,FUN=mean)
sumaYporClases_FC_terc<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_FC_terc,FUN=sum)
sumaYporClases_FC_terc
1 2 3
240 245 256
pEstimado_FC_terc<-as.vector(sumaYporClases_FC_terc/table(clases_FC_terc))
pEstimado_FC_terc <- pEstimado_FC_terc -1
logit_FC_terc<-log(pEstimado_FC_terc/(1-(pEstimado_FC_terc)))
plot(medias_FC_terc,logit_FC_terc,xlab="Media de FC por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: FC terciles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en cuartiles y hago graficos
base_sens$Log_FC_Cuart <- ntile(base_sens$Log_FC, 4)
clases_FC_Cuart<-base_sens$Log_FC_Cuart
table(clases_FC_Cuart)
clases_FC_Cuart
1 2 3 4
171 171 171 171
medias_FC_Cuart<-tapply(base_sens$Log_FC,INDEX=clases_FC_Cuart,FUN=mean)
sumaYporClases_FC_Cuart<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_FC_Cuart,FUN=sum)
sumaYporClases_FC_Cuart
1 2 3 4
182 179 188 192
pEstimado_FC_Cuart<-as.vector(sumaYporClases_FC_Cuart/table(clases_FC_Cuart))
pEstimado_FC_Cuart <- pEstimado_FC_Cuart -1
logit_FC_Cuart<-log(pEstimado_FC_Cuart/(1-(pEstimado_FC_Cuart)))
plot(medias_FC_Cuart,logit_FC_Cuart,xlab="Media de FC por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: FC cuartiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en quintiles y hago graficos
base_sens$Log_FC_Quint <- ntile(base_sens$Log_FC, 5)
clases_FC_Quint<-base_sens$Log_FC_Quint
table(clases_FC_Quint)
clases_FC_Quint
1 2 3 4 5
137 137 137 137 136
medias_FC_Quint<-tapply(base_sens$Log_FC,INDEX=clases_FC_Quint,FUN=mean)
sumaYporClases_FC_Quint<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_FC_Quint,FUN=sum)
sumaYporClases_FC_Quint
1 2 3 4 5
145 143 148 151 154
pEstimado_FC_Quint<-as.vector(sumaYporClases_FC_Quint/table(clases_FC_Quint))
pEstimado_FC_Quint <- pEstimado_FC_Quint -1
logit_FC_Quint<-log(pEstimado_FC_Quint/(1-(pEstimado_FC_Quint)))
plot(medias_FC_Quint,logit_FC_Quint,xlab="Media de FC por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: FC quintiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en dos y hago graficos
base_sens$Log_FC_Binom <- ntile(base_sens$Log_FC, 2)
clases_FC_Binom<-base_sens$Log_FC_Binom
table(clases_FC_Binom)
clases_FC_Binom
1 2
342 342
medias_FC_Binom<-tapply(base_sens$Log_FC,INDEX=clases_FC_Binom,FUN=mean)
sumaYporClases_FC_Binom<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_FC_Binom,FUN=sum)
sumaYporClases_FC_Binom
1 2
361 380
pEstimado_FC_Binom<-as.vector(sumaYporClases_FC_Binom/table(clases_FC_Binom))
pEstimado_FC_Binom <- pEstimado_FC_Binom -1
logit_FC_Binom<-log(pEstimado_FC_Binom/(1-(pEstimado_FC_Binom)))
plot(medias_FC_Binom,logit_FC_Binom,xlab="Media de FC por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: FC dos grupos con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
base_sens$Compl_Sang_Todos <- as.factor(base_sens$Compl_Sang_Todos)
summary(base_sens$Log_TAS)
Min. 1st Qu. Median Mean 3rd Qu. Max.
3.91 4.70 4.79 4.79 4.93 5.39
base_sens$Log_TAS_Corte<-cut(base_sens$Log_TAS,breaks=seq(3.91,5.39,length.out=5))
table(base_sens$Log_TAS_Corte)
(3.91,4.28] (4.28,4.65] (4.65,5.02] (5.02,5.39]
15 121 495 52
clases_TAS <- cut(base_sens$Log_TAS,breaks=seq(3.91,5.39,length.out=10))
table(clases_TAS)
clases_TAS
(3.91,4.07] (4.07,4.24] (4.24,4.4] (4.4,4.57] (4.57,4.73] (4.73,4.9] (4.9,5.06] (5.06,5.23] (5.23,5.39]
1 5 32 37 149 270 146 39 4
medias_TAS<-tapply(base_sens$Log_TAS,INDEX=clases_TAS,FUN=mean)
base_sens$Compl_Sang_Todos <- as.integer(base_sens$Compl_Sang_Todos)
sumaYporClases_TAS<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_TAS,FUN=sum)
sumaYporClases_TAS
(3.91,4.07] (4.07,4.24] (4.24,4.4] (4.4,4.57] (4.57,4.73] (4.73,4.9] (4.9,5.06] (5.06,5.23] (5.23,5.39]
1 8 35 44 160 291 158 39 4
pEstimado_TAS<-as.vector(sumaYporClases_TAS/table(clases_TAS))
pEstimado_TAS <- pEstimado_TAS -1
logit_TAS<-log(pEstimado_TAS/(1-(pEstimado_TAS)))
plot(medias_TAS,logit_TAS,xlab="Media de TAS por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: TAS con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en terciles y hago graficos
base_sens$Log_TAS_Terc <- ntile(base_sens$Log_TAS, 3)
clases_TAS_terc<-base_sens$Log_TAS_Terc
table(clases_TAS_terc)
clases_TAS_terc
1 2 3
228 228 228
medias_TAS_terc<-tapply(base_sens$Log_TAS,INDEX=clases_TAS_terc,FUN=mean)
sumaYporClases_TAS_terc<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_TAS_terc,FUN=sum)
sumaYporClases_TAS_terc
1 2 3
252 246 243
pEstimado_TAS_terc<-as.vector(sumaYporClases_TAS_terc/table(clases_TAS_terc))
pEstimado_TAS_terc <- pEstimado_TAS_terc -1
logit_TAS_terc<-log(pEstimado_TAS_terc/(1-(pEstimado_TAS_terc)))
plot(medias_TAS_terc,logit_TAS_terc,xlab="Media de TAS por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: TAS terciles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en cuartiles y hago graficos
base_sens$Log_TAS_Cuart <- ntile(base_sens$Log_TAS, 4)
clases_TAS_Cuart<-base_sens$Log_TAS_Cuart
table(clases_TAS_Cuart)
clases_TAS_Cuart
1 2 3 4
171 171 171 171
medias_TAS_Cuart<-tapply(base_sens$Log_TAS,INDEX=clases_TAS_Cuart,FUN=mean)
sumaYporClases_TAS_Cuart<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_TAS_Cuart,FUN=sum)
sumaYporClases_TAS_Cuart
1 2 3 4
192 181 186 182
pEstimado_TAS_Cuart<-as.vector(sumaYporClases_TAS_Cuart/table(clases_TAS_Cuart))
pEstimado_TAS_Cuart <- pEstimado_TAS_Cuart -1
logit_TAS_Cuart<-log(pEstimado_TAS_Cuart/(1-(pEstimado_TAS_Cuart)))
plot(medias_TAS_Cuart,logit_TAS_Cuart,xlab="Media de TAS por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: TAS cuartiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en quintiles y hago graficos
base_sens$Log_TAS_Quint <- ntile(base_sens$Log_TAS, 5)
clases_TAS_Quint<-base_sens$Log_TAS_Quint
table(clases_TAS_Quint)
clases_TAS_Quint
1 2 3 4 5
137 137 137 137 136
medias_TAS_Quint<-tapply(base_sens$Log_TAS,INDEX=clases_TAS_Quint,FUN=mean)
sumaYporClases_TAS_Quint<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_TAS_Quint,FUN=sum)
sumaYporClases_TAS_Quint
1 2 3 4 5
156 144 147 150 144
pEstimado_TAS_Quint<-as.vector(sumaYporClases_TAS_Quint/table(clases_TAS_Quint))
pEstimado_TAS_Quint <- pEstimado_TAS_Quint -1
logit_TAS_Quint<-log(pEstimado_TAS_Quint/(1-(pEstimado_TAS_Quint)))
plot(medias_TAS_Quint,logit_TAS_Quint,xlab="Media de TAS por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: TAS quintiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en dos y hago graficos
base_sens$Log_TAS_Binom <- ntile(base_sens$Log_TAS, 2)
clases_TAS_Binom<-base_sens$Log_TAS_Binom
table(clases_TAS_Binom)
clases_TAS_Binom
1 2
342 342
medias_TAS_Binom<-tapply(base_sens$Log_TAS,INDEX=clases_TAS_Binom,FUN=mean)
sumaYporClases_TAS_Binom<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_TAS_Binom,FUN=sum)
sumaYporClases_TAS_Binom
1 2
373 368
pEstimado_TAS_Binom<-as.vector(sumaYporClases_TAS_Binom/table(clases_TAS_Binom))
pEstimado_TAS_Binom <- pEstimado_TAS_Binom -1
logit_TAS_Binom<-log(pEstimado_TAS_Binom/(1-(pEstimado_TAS_Binom)))
plot(medias_TAS_Binom,logit_TAS_Binom,xlab="Media de TAS por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Cr dos grupos con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
base_sens$Compl_Sang_Todos <- as.factor(base_sens$Compl_Sang_Todos)
summary(base_sens$Log_Lab_Plaq)
Min. 1st Qu. Median Mean 3rd Qu. Max.
9.78 11.98 12.23 12.22 12.51 13.50
base_sens$Log_Lab_Plaq_Corte<-cut(base_sens$Log_Lab_Plaq,breaks=seq(15.42,57.33,length.out=5))
table(base_sens$Log_Lab_Plaq_Corte)
(15.4,25.9] (25.9,36.4] (36.4,46.9] (46.9,57.3]
0 0 0 0
clases_Log_Lab_Plaq <- cut(base_sens$Log_Lab_Plaq,breaks=seq(15.42,57.33,length.out=10))
table(clases_Log_Lab_Plaq)
clases_Log_Lab_Plaq
(15.4,20.1] (20.1,24.7] (24.7,29.4] (29.4,34] (34,38.7] (38.7,43.4] (43.4,48] (48,52.7] (52.7,57.3]
0 0 0 0 0 0 0 0 0
medias_Log_Lab_Plaq<-tapply(base_sens$Log_Lab_Plaq,INDEX=clases_Log_Lab_Plaq,FUN=mean)
base_sens$Compl_Sang_Todos <- as.integer(base_sens$Compl_Sang_Todos)
sumaYporClases_Log_Lab_Plaq<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_Log_Lab_Plaq,FUN=sum)
sumaYporClases_Log_Lab_Plaq
(15.4,20.1] (20.1,24.7] (24.7,29.4] (29.4,34] (34,38.7] (38.7,43.4] (43.4,48] (48,52.7] (52.7,57.3]
NA NA NA NA NA NA NA NA NA
pEstimado_Log_Lab_Plaq<-as.vector(sumaYporClases_Log_Lab_Plaq/table(clases_Log_Lab_Plaq))
pEstimado_Log_Lab_Plaq <- pEstimado_Log_Lab_Plaq -1
logit_Log_Lab_Plaq<-log(pEstimado_Log_Lab_Plaq/(1-(pEstimado_Log_Lab_Plaq)))
# Separo en terciles y hago graficos
base_sens$Log_Lab_Plaq_Terc <- ntile(base_sens$Log_Lab_Plaq, 3)
clases_Log_Lab_Plaq_terc<-base_sens$Log_Lab_Plaq_Terc
table(clases_Log_Lab_Plaq_terc)
clases_Log_Lab_Plaq_terc
1 2 3
228 228 228
medias_Log_Lab_Plaq_terc<-tapply(base_sens$Log_Lab_Plaq,INDEX=clases_Log_Lab_Plaq_terc,FUN=mean)
sumaYporClases_Log_Lab_Plaq_terc<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_Log_Lab_Plaq_terc,FUN=sum)
sumaYporClases_Log_Lab_Plaq_terc
1 2 3
245 246 250
pEstimado_Log_Lab_Plaq_terc<-as.vector(sumaYporClases_Log_Lab_Plaq_terc/table(clases_Log_Lab_Plaq_terc))
pEstimado_Log_Lab_Plaq_terc <- pEstimado_Log_Lab_Plaq_terc -1
logit_Log_Lab_Plaq_terc<-log(pEstimado_Log_Lab_Plaq_terc/(1-(pEstimado_Log_Lab_Plaq_terc)))
plot(medias_Log_Lab_Plaq_terc,logit_Log_Lab_Plaq_terc,xlab="Media de Plaquetas por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Plaquetas terciles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en cuartiles y hago graficos
base_sens$Log_Lab_Plaq_Cuart <- ntile(base_sens$Log_Lab_Plaq, 4)
clases_Log_Lab_Plaq_Cuart<-base_sens$Log_Lab_Plaq_Cuart
table(clases_Log_Lab_Plaq_Cuart)
clases_Log_Lab_Plaq_Cuart
1 2 3 4
171 171 171 171
medias_Log_Lab_Plaq_Cuart<-tapply(base_sens$Log_Lab_Plaq,INDEX=clases_Log_Lab_Plaq_Cuart,FUN=mean)
sumaYporClases_Log_Lab_Plaq_Cuart<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_Log_Lab_Plaq_Cuart,FUN=sum)
sumaYporClases_Log_Lab_Plaq_Cuart
1 2 3 4
185 184 186 186
pEstimado_Log_Lab_Plaq_Cuart<-as.vector(sumaYporClases_Log_Lab_Plaq_Cuart/table(clases_Log_Lab_Plaq_Cuart))
pEstimado_Log_Lab_Plaq_Cuart <- pEstimado_Log_Lab_Plaq_Cuart -1
logit_Log_Lab_Plaq_Cuart<-log(pEstimado_Log_Lab_Plaq_Cuart/(1-(pEstimado_Log_Lab_Plaq_Cuart)))
plot(medias_Log_Lab_Plaq_Cuart,logit_Log_Lab_Plaq_Cuart,xlab="Media de Plaquetas por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Plaquetas cuartiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en quintiles y hago graficos
base_sens$Log_Lab_Plaq_Quint <- ntile(base_sens$Log_Lab_Plaq, 5)
clases_Log_Lab_Plaq_Quint<-base_sens$Log_Lab_Plaq_Quint
table(clases_Log_Lab_Plaq_Quint)
clases_Log_Lab_Plaq_Quint
1 2 3 4 5
137 137 137 137 136
medias_Log_Lab_Plaq_Quint<-tapply(base_sens$Log_Lab_Plaq,INDEX=clases_Log_Lab_Plaq_Quint,FUN=mean)
sumaYporClases_Log_Lab_Plaq_Quint<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_Log_Lab_Plaq_Quint,FUN=sum)
sumaYporClases_Log_Lab_Plaq_Quint
1 2 3 4 5
150 145 149 150 147
pEstimado_Log_Lab_Plaq_Quint<-as.vector(sumaYporClases_Log_Lab_Plaq_Quint/table(clases_Log_Lab_Plaq_Quint))
pEstimado_Log_Lab_Plaq_Quint <- pEstimado_Log_Lab_Plaq_Quint -1
logit_Log_Lab_Plaq_Quint<-log(pEstimado_Log_Lab_Plaq_Quint/(1-(pEstimado_Log_Lab_Plaq_Quint)))
plot(medias_Log_Lab_Plaq_Quint,logit_Log_Lab_Plaq_Quint,xlab="Media de Plaquetas por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Plaquetas quintiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en dos y hago graficos
base_sens$Log_Lab_Plaq_Binom <- ntile(base_sens$Log_Lab_Plaq, 2)
clases_Log_Lab_Plaq_Binom<-base_sens$Log_Lab_Plaq_Binom
table(clases_Log_Lab_Plaq_Binom)
clases_Log_Lab_Plaq_Binom
1 2
342 342
medias_Log_Lab_Plaq_Binom<-tapply(base_sens$Log_Lab_Plaq,INDEX=clases_Log_Lab_Plaq_Binom,FUN=mean)
sumaYporClases_Log_Lab_Plaq_Binom<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_Log_Lab_Plaq_Binom,FUN=sum)
sumaYporClases_Log_Lab_Plaq_Binom
1 2
369 372
pEstimado_Log_Lab_Plaq_Binom<-as.vector(sumaYporClases_Log_Lab_Plaq_Binom/table(clases_Log_Lab_Plaq_Binom))
pEstimado_Log_Lab_Plaq_Binom <- pEstimado_Log_Lab_Plaq_Binom -1
logit_Log_Lab_Plaq_Binom<-log(pEstimado_Log_Lab_Plaq_Binom/(1-(pEstimado_Log_Lab_Plaq_Binom)))
plot(medias_Log_Lab_Plaq_Binom,logit_Log_Lab_Plaq_Binom,xlab="Media de Plaquetas por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Plaquetas dos grupos con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
base_sens$Compl_Sang_Todos <- as.factor(base_sens$Compl_Sang_Todos)
summary(base_sens$Log_Lab_GB)
Min. 1st Qu. Median Mean 3rd Qu. Max.
7.03 8.94 9.22 9.20 9.47 11.59
base_sens$Log_Lab_GB_Corte<-cut(base_sens$Log_Lab_GB,breaks=seq(7.03,11.59,length.out=5))
table(base_sens$Log_Lab_GB_Corte)
(7.03,8.17] (8.17,9.31] (9.31,10.4] (10.4,11.6]
13 386 278 6
clases_GB <- cut(base_sens$Log_Lab_GB,breaks=seq(7.03,11.59,length.out=10))
table(clases_GB)
clases_GB
(7.03,7.54] (7.54,8.04] (8.04,8.55] (8.55,9.06] (9.06,9.56] (9.56,10.1] (10.1,10.6] (10.6,11.1] (11.1,11.6]
4 5 29 199 309 121 12 2 2
medias_GB<-tapply(base_sens$Log_Lab_GB,INDEX=clases_GB,FUN=mean)
base_sens$Compl_Sang_Todos <- as.integer(base_sens$Compl_Sang_Todos)
sumaYporClases_GB<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_GB,FUN=sum)
sumaYporClases_GB
(7.03,7.54] (7.54,8.04] (8.04,8.55] (8.55,9.06] (9.06,9.56] (9.56,10.1] (10.1,10.6] (10.6,11.1] (11.1,11.6]
4 6 32 207 336 136 14 3 2
pEstimado_GB<-as.vector(sumaYporClases_GB/table(clases_GB))
pEstimado_GB <- pEstimado_GB -1
logit_GB<-log(pEstimado_GB/(1-(pEstimado_GB)))
plot(medias_GB,logit_GB,xlab="Media de GB por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: GB con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en terciles y hago graficos
base_sens$Log_Lab_GB_Terc <- ntile(base_sens$Log_Lab_GB, 3)
clases_GB_terc<-base_sens$Log_Lab_GB_Terc
table(clases_GB_terc)
clases_GB_terc
1 2 3
228 228 228
medias_GB_terc<-tapply(base_sens$Log_Lab_GB,INDEX=clases_GB_terc,FUN=mean)
sumaYporClases_GB_terc<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_GB_terc,FUN=sum)
sumaYporClases_GB_terc
1 2 3
240 246 255
pEstimado_GB_terc<-as.vector(sumaYporClases_GB_terc/table(clases_GB_terc))
pEstimado_GB_terc <- pEstimado_GB_terc -1
logit_GB_terc<-log(pEstimado_GB_terc/(1-(pEstimado_GB_terc)))
plot(medias_GB_terc,logit_GB_terc,xlab="Media de GB por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: GB terciles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en cuartiles y hago graficos
base_sens$Log_Lab_GB_Cuart <- ntile(base_sens$Log_Lab_GB, 4)
clases_GB_Cuart<-base_sens$Log_Lab_GB_Cuart
table(clases_GB_Cuart)
clases_GB_Cuart
1 2 3 4
171 171 171 171
medias_GB_Cuart<-tapply(base_sens$Log_Lab_GB,INDEX=clases_GB_Cuart,FUN=mean)
sumaYporClases_GB_Cuart<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_GB_Cuart,FUN=sum)
sumaYporClases_GB_Cuart
1 2 3 4
179 179 193 190
pEstimado_GB_Cuart<-as.vector(sumaYporClases_GB_Cuart/table(clases_GB_Cuart))
pEstimado_GB_Cuart <- pEstimado_GB_Cuart -1
logit_GB_Cuart<-log(pEstimado_GB_Cuart/(1-(pEstimado_GB_Cuart)))
plot(medias_GB_Cuart,logit_GB_Cuart,xlab="Media de GB por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: GB cuartiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en quintiles y hago graficos
base_sens$Log_Lab_GB_Quint <- ntile(base_sens$Log_Lab_GB, 5)
clases_GB_Quint<-base_sens$Log_Lab_GB_Quint
table(clases_GB_Quint)
clases_GB_Quint
1 2 3 4 5
137 137 137 137 136
medias_GB_Quint<-tapply(base_sens$Log_Lab_GB,INDEX=clases_GB_Quint,FUN=mean)
sumaYporClases_GB_Quint<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_GB_Quint,FUN=sum)
sumaYporClases_GB_Quint
1 2 3 4 5
144 143 148 152 154
pEstimado_GB_Quint<-as.vector(sumaYporClases_GB_Quint/table(clases_GB_Quint))
pEstimado_GB_Quint <- pEstimado_GB_Quint -1
logit_GB_Quint<-log(pEstimado_GB_Quint/(1-(pEstimado_GB_Quint)))
plot(medias_GB_Quint,logit_GB_Quint,xlab="Media de GB por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: GB quintiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en dos y hago graficos
base_sens$Log_Lab_GB_Binom <- ntile(base_sens$Log_Lab_GB, 2)
clases_GB_Binom<-base_sens$Log_Lab_GB_Binom
table(clases_GB_Binom)
clases_GB_Binom
1 2
342 342
medias_GB_Binom<-tapply(base_sens$Log_Lab_GB,INDEX=clases_GB_Binom,FUN=mean)
sumaYporClases_GB_Binom<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_GB_Binom,FUN=sum)
sumaYporClases_GB_Binom
1 2
358 383
pEstimado_GB_Binom<-as.vector(sumaYporClases_GB_Binom/table(clases_GB_Binom))
pEstimado_GB_Binom <- pEstimado_GB_Binom -1
logit_GB_Binom<-log(pEstimado_GB_Binom/(1-(pEstimado_GB_Binom)))
plot(medias_GB_Binom,logit_GB_Binom,xlab="Media de GB por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: GB dos grupos con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
base_sens$Compl_Sang_Todos <- as.factor(base_sens$Compl_Sang_Todos)
summary(base_sens$Log_ClCr)
Min. 1st Qu. Median Mean 3rd Qu. Max.
2.28 4.04 4.36 4.37 4.77 5.82
base_sens$Log_ClCr_Corte<-cut(base_sens$Log_ClCr,breaks=seq(7.03,11.59,length.out=5))
table(base_sens$Log_ClCr_Corte)
(7.03,8.17] (8.17,9.31] (9.31,10.4] (10.4,11.6]
0 0 0 0
clases_Log_ClCr <- cut(base_sens$Log_ClCr,breaks=seq(7.03,11.59,length.out=10))
table(clases_Log_ClCr)
clases_Log_ClCr
(7.03,7.54] (7.54,8.04] (8.04,8.55] (8.55,9.06] (9.06,9.56] (9.56,10.1] (10.1,10.6] (10.6,11.1] (11.1,11.6]
0 0 0 0 0 0 0 0 0
medias_Log_ClCr<-tapply(base_sens$Log_ClCr,INDEX=clases_Log_ClCr,FUN=mean)
base_sens$Compl_Sang_Todos <- as.integer(base_sens$Compl_Sang_Todos)
sumaYporClases_Log_ClCr<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_Log_ClCr,FUN=sum)
sumaYporClases_Log_ClCr
(7.03,7.54] (7.54,8.04] (8.04,8.55] (8.55,9.06] (9.06,9.56] (9.56,10.1] (10.1,10.6] (10.6,11.1] (11.1,11.6]
NA NA NA NA NA NA NA NA NA
pEstimado_Log_ClCr<-as.vector(sumaYporClases_Log_ClCr/table(clases_Log_ClCr))
pEstimado_Log_ClCr <- pEstimado_Log_ClCr -1
logit_Log_ClCr<-log(pEstimado_Log_ClCr/(1-(pEstimado_Log_ClCr)))
# Separo en terciles y hago graficos
base_sens$Log_ClCr_Terc <- ntile(base_sens$Log_ClCr, 3)
clases_Log_ClCr_terc<-base_sens$Log_ClCr_Terc
table(clases_Log_ClCr_terc)
clases_Log_ClCr_terc
1 2 3
228 228 228
medias_Log_ClCr_terc<-tapply(base_sens$Log_ClCr,INDEX=clases_Log_ClCr_terc,FUN=mean)
sumaYporClases_Log_ClCr_terc<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_Log_ClCr_terc,FUN=sum)
sumaYporClases_Log_ClCr_terc
1 2 3
248 243 250
pEstimado_Log_ClCr_terc<-as.vector(sumaYporClases_Log_ClCr_terc/table(clases_Log_ClCr_terc))
pEstimado_Log_ClCr_terc <- pEstimado_Log_ClCr_terc -1
logit_Log_ClCr_terc<-log(pEstimado_Log_ClCr_terc/(1-(pEstimado_Log_ClCr_terc)))
plot(medias_Log_ClCr_terc,logit_Log_ClCr_terc,xlab="Media de Log_ClCr por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Log_ClCr terciles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en cuartiles y hago graficos
base_sens$Log_ClCr_Cuart <- ntile(base_sens$Log_ClCr, 4)
clases_Log_ClCr_Cuart<-base_sens$Log_ClCr_Cuart
table(clases_Log_ClCr_Cuart)
clases_Log_ClCr_Cuart
1 2 3 4
171 171 171 171
medias_Log_ClCr_Cuart<-tapply(base_sens$Log_ClCr,INDEX=clases_Log_ClCr_Cuart,FUN=mean)
sumaYporClases_Log_ClCr_Cuart<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_Log_ClCr_Cuart,FUN=sum)
sumaYporClases_Log_ClCr_Cuart
1 2 3 4
187 180 185 189
pEstimado_Log_ClCr_Cuart<-as.vector(sumaYporClases_Log_ClCr_Cuart/table(clases_Log_ClCr_Cuart))
pEstimado_Log_ClCr_Cuart <- pEstimado_Log_ClCr_Cuart -1
logit_Log_ClCr_Cuart<-log(pEstimado_Log_ClCr_Cuart/(1-(pEstimado_Log_ClCr_Cuart)))
plot(medias_Log_ClCr_Cuart,logit_Log_ClCr_Cuart,xlab="Media de Log_ClCr por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Log_ClCr cuartiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en quintiles y hago graficos
base_sens$Log_ClCr_Quint <- ntile(base_sens$Log_ClCr, 5)
clases_Log_ClCr_Quint<-base_sens$Log_ClCr_Quint
table(clases_Log_ClCr_Quint)
clases_Log_ClCr_Quint
1 2 3 4 5
137 137 137 137 136
medias_Log_ClCr_Quint<-tapply(base_sens$Log_ClCr,INDEX=clases_Log_ClCr_Quint,FUN=mean)
sumaYporClases_Log_ClCr_Quint<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_Log_ClCr_Quint,FUN=sum)
sumaYporClases_Log_ClCr_Quint
1 2 3 4 5
152 144 145 149 151
pEstimado_Log_ClCr_Quint<-as.vector(sumaYporClases_Log_ClCr_Quint/table(clases_Log_ClCr_Quint))
pEstimado_Log_ClCr_Quint <- pEstimado_Log_ClCr_Quint -1
logit_Log_ClCr_Quint<-log(pEstimado_Log_ClCr_Quint/(1-(pEstimado_Log_ClCr_Quint)))
plot(medias_Log_ClCr_Quint,logit_Log_ClCr_Quint,xlab="Media de Log_ClCr por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Log_ClCr quintiles con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
# Separo en dos y hago graficos
base_sens$Log_ClCr_Binom <- ntile(base_sens$Log_ClCr, 2)
clases_Log_ClCr_Binom<-base_sens$Log_ClCr_Binom
table(clases_Log_ClCr_Binom)
clases_Log_ClCr_Binom
1 2
342 342
medias_Log_ClCr_Binom<-tapply(base_sens$Log_ClCr,INDEX=clases_Log_ClCr_Binom,FUN=mean)
sumaYporClases_Log_ClCr_Binom<-tapply(base_sens$Compl_Sang_Todos,INDEX=clases_Log_ClCr_Binom,FUN=sum)
sumaYporClases_Log_ClCr_Binom
1 2
367 374
pEstimado_Log_ClCr_Binom<-as.vector(sumaYporClases_Log_ClCr_Binom/table(clases_Log_ClCr_Binom))
pEstimado_Log_ClCr_Binom <- pEstimado_Log_ClCr_Binom -1
logit_Log_ClCr_Binom<-log(pEstimado_Log_ClCr_Binom/(1-(pEstimado_Log_ClCr_Binom)))
plot(medias_Log_ClCr_Binom,logit_Log_ClCr_Binom,xlab="Media de Log_ClCr por clase",
ylab="Logit de Probabilidad de Sangrado por clase",
main= "Prueba de relación lineal: Log_ClCr dos grupos con Logit de probabilidad de
sangrado",col="blue",pch=20, type="lowess")
base_sens$Compl_Sang_Todos <- as.factor(base_sens$Compl_Sang_Todos)
#edad ninguno es significativo
summary(glm(Compl_Sang_Todos ~ Pac_Edad_Binom, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Pac_Edad_Binom, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.451 -0.451 -0.382 -0.382 2.305
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.890 0.423 -4.47 0.0000079 ***
Pac_Edad_Binom -0.347 0.280 -1.24 0.21
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 390.84 on 682 degrees of freedom
AIC: 394.8
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_Edad_Terc, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Pac_Edad_Terc, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.468 -0.468 -0.413 -0.365 2.343
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.895 0.348 -5.45 0.000000051 ***
Pac_Edad_Terc -0.261 0.172 -1.52 0.13
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 390.06 on 682 degrees of freedom
AIC: 394.1
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_Edad_Cuart, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Pac_Edad_Cuart, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.456 -0.429 -0.403 -0.378 2.313
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.080 0.325 -6.39 0.00000000016 ***
Pac_Edad_Cuart -0.131 0.125 -1.05 0.29
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.28 on 682 degrees of freedom
AIC: 395.3
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Pac_Edad_Quint, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Pac_Edad_Quint, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.455 -0.435 -0.416 -0.380 2.309
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.1219 0.3119 -6.80 0.00000000001 ***
Pac_Edad_Quint -0.0946 0.0984 -0.96 0.34
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.46 on 682 degrees of freedom
AIC: 395.5
Number of Fisher Scoring iterations: 5
#FR terciles es significativo
summary(glm(Compl_Sang_Todos ~ CC_FR_Ingreso_Binom, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ CC_FR_Ingreso_Binom, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.465 -0.465 -0.365 -0.365 2.342
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.183 0.476 -6.69 0.000000000022 ***
CC_FR_Ingreso_Binom 0.506 0.284 1.78 0.074 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 389.13 on 682 degrees of freedom
AIC: 393.1
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ CC_FR_Ingreso_Terc, data = base_sens, family = binomial (link = logit))) #0.06
Call:
glm(formula = Compl_Sang_Todos ~ CC_FR_Ingreso_Terc, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.468 -0.468 -0.413 -0.365 2.343
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.938 0.394 -7.46 0.000000000000084 ***
CC_FR_Ingreso_Terc 0.261 0.172 1.52 0.13
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 390.06 on 682 degrees of freedom
AIC: 394.1
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ CC_FR_Ingreso_Cuart, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ CC_FR_Ingreso_Cuart, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.470 -0.432 -0.397 -0.364 2.344
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.858 0.363 -7.86 0.0000000000000037 ***
CC_FR_Ingreso_Cuart 0.177 0.125 1.42 0.16
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 390.36 on 682 degrees of freedom
AIC: 394.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ CC_FR_Ingreso_Quint, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ CC_FR_Ingreso_Quint, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.479 -0.445 -0.413 -0.355 2.364
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.8868 0.3516 -8.21 <0.0000000000000002 ***
CC_FR_Ingreso_Quint 0.1564 0.0993 1.58 0.12
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 389.88 on 682 degrees of freedom
AIC: 393.9
Number of Fisher Scoring iterations: 5
#FC todos significativos pero terciles lineal
summary(glm(Compl_Sang_Todos ~ Log_FC_Binom, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_FC_Binom, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.485 -0.485 -0.338 -0.338 2.404
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.587 0.502 -7.14 0.00000000000095 ***
Log_FC_Binom 0.754 0.292 2.58 0.0099 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 385.36 on 682 degrees of freedom
AIC: 389.4
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_FC_Terc, data = base_sens, family = binomial (link = logit))) #0.007
Call:
glm(formula = Compl_Sang_Todos ~ Log_FC_Terc, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.507 -0.507 -0.405 -0.322 2.443
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.407 0.424 -8.04 0.00000000000000094 ***
Log_FC_Terc 0.474 0.178 2.67 0.0076 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 384.93 on 682 degrees of freedom
AIC: 388.9
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_FC_Cuart, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_FC_Cuart, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.507 -0.439 -0.379 -0.327 2.432
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.210 0.386 -8.32 <0.0000000000000002 ***
Log_FC_Cuart 0.305 0.128 2.39 0.017 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 386.50 on 682 degrees of freedom
AIC: 390.5
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_FC_Quint, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_FC_Quint, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.527 -0.462 -0.405 -0.309 2.475
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.294 0.379 -8.69 <0.0000000000000002 ***
Log_FC_Quint 0.278 0.102 2.72 0.0066 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 384.68 on 682 degrees of freedom
AIC: 388.7
Number of Fisher Scoring iterations: 5
#TAS terciles borderline y lineal
summary(glm(Compl_Sang_Todos ~ Log_TAS_Binom, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_TAS_Binom, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.436 -0.436 -0.398 -0.398 2.270
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.114 0.428 -4.93 0.0000008 ***
Log_TAS_Binom -0.192 0.278 -0.69 0.49
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.91 on 682 degrees of freedom
AIC: 395.9
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_TAS_Terc, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_TAS_Terc, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.468 -0.468 -0.413 -0.365 2.343
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.895 0.348 -5.45 0.000000051 ***
Log_TAS_Terc -0.261 0.172 -1.52 0.13
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 390.06 on 682 degrees of freedom
AIC: 394.1
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_TAS_Cuart, data = base_sens, family = binomial (link = logit))) #13
Call:
glm(formula = Compl_Sang_Todos ~ Log_TAS_Cuart, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.474 -0.433 -0.395 -0.359 2.354
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.934 0.320 -6.04 0.0000000015 ***
Log_TAS_Cuart -0.193 0.125 -1.54 0.12
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 389.99 on 682 degrees of freedom
AIC: 394
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_TAS_Quint, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_TAS_Quint, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.478 -0.445 -0.413 -0.356 2.361
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.9584 0.3056 -6.41 0.00000000015 ***
Log_TAS_Quint -0.1531 0.0992 -1.54 0.12
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 389.98 on 682 degrees of freedom
AIC: 394
Number of Fisher Scoring iterations: 5
#Plaq nada es lineal ni significativo
summary(glm(Compl_Sang_Todos ~ Log_Lab_Plaq_Binom, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_Lab_Plaq_Binom, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.428 -0.428 -0.406 -0.406 2.253
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.572 0.444 -5.79 0.0000000071 ***
Log_Lab_Plaq_Binom 0.115 0.277 0.41 0.68
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.22 on 682 degrees of freedom
AIC: 396.2
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_Lab_Plaq_Terc, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_Lab_Plaq_Terc, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.446 -0.446 -0.416 -0.388 2.290
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.692 0.380 -7.08 0.0000000000014 ***
Log_Lab_Plaq_Terc 0.144 0.170 0.85 0.4
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.67 on 682 degrees of freedom
AIC: 395.7
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_Lab_Plaq_Cuart, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_Lab_Plaq_Cuart, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.429 -0.421 -0.413 -0.406 2.253
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.4944 0.3435 -7.26 0.00000000000038 ***
Log_Lab_Plaq_Cuart 0.0383 0.1238 0.31 0.76
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.30 on 682 degrees of freedom
AIC: 396.3
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_Lab_Plaq_Quint, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_Lab_Plaq_Quint, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.422 -0.419 -0.417 -0.413 2.239
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.4315 0.3260 -7.46 0.000000000000088 ***
Log_Lab_Plaq_Quint 0.0112 0.0979 0.11 0.91
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.38 on 682 degrees of freedom
AIC: 396.4
Number of Fisher Scoring iterations: 5
#GB terciles significativo y lineal
summary(glm(Compl_Sang_Todos ~ Log_Lab_GB_Binom, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_Lab_GB_Binom, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.505 -0.505 -0.310 -0.310 2.475
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.035 0.538 -7.49 0.000000000000067 ***
Log_Lab_GB_Binom 1.021 0.305 3.34 0.00083 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 380.05 on 682 degrees of freedom
AIC: 384
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_Lab_GB_Terc, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_Lab_GB_Terc, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.502 -0.502 -0.406 -0.328 2.428
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.337 0.419 -7.96 0.0000000000000017 ***
Log_Lab_GB_Terc 0.442 0.176 2.51 0.012 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 385.85 on 682 degrees of freedom
AIC: 389.8
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_Lab_GB_Cuart, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_Lab_GB_Cuart, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.525 -0.441 -0.369 -0.308 2.480
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.399 0.399 -8.51 <0.0000000000000002 ***
Log_Lab_GB_Cuart 0.372 0.130 2.86 0.0042 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 383.79 on 682 degrees of freedom
AIC: 387.8
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_Lab_GB_Quint, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_Lab_GB_Quint, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.539 -0.466 -0.402 -0.298 2.506
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.404 0.387 -8.8 <0.0000000000000002 ***
Log_Lab_GB_Quint 0.309 0.103 3.0 0.0027 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 382.92 on 682 degrees of freedom
AIC: 386.9
Number of Fisher Scoring iterations: 5
#ClCr no es significativo ni lineal
summary(glm(Compl_Sang_Todos ~ Log_ClCr_Binom, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_ClCr_Binom, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.443 -0.443 -0.390 -0.390 2.287
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.809 0.455 -6.17 0.00000000067 ***
Log_ClCr_Binom 0.269 0.279 0.97 0.33
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.45 on 682 degrees of freedom
AIC: 395.5
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_ClCr_Terc, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_ClCr_Terc, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.429 -0.429 -0.417 -0.406 2.253
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.5137 0.3713 -6.77 0.000000000013 ***
Log_ClCr_Terc 0.0574 0.1696 0.34 0.73
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.28 on 682 degrees of freedom
AIC: 396.3
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_ClCr_Cuart, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_ClCr_Cuart, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.442 -0.425 -0.408 -0.392 2.283
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.6125 0.3496 -7.47 0.000000000000079 ***
Log_ClCr_Cuart 0.0844 0.1241 0.68 0.5
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 391.93 on 682 degrees of freedom
AIC: 395.9
Number of Fisher Scoring iterations: 5
summary(glm(Compl_Sang_Todos ~ Log_ClCr_Quint, data = base_sens, family = binomial (link = logit)))
Call:
glm(formula = Compl_Sang_Todos ~ Log_ClCr_Quint, family = binomial(link = logit),
data = base_sens)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.437 -0.427 -0.417 -0.397 2.271
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.5485 0.3321 -7.67 0.000000000000017 ***
Log_ClCr_Quint 0.0496 0.0980 0.51 0.61
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 392.39 on 683 degrees of freedom
Residual deviance: 392.14 on 682 degrees of freedom
AIC: 396.1
Number of Fisher Scoring iterations: 5
- La transformación de variables o separación en terciles-cuartiles no aporta información util para EDAD, PLAQUETAS ni ClCr. Por ende estas variables no podrían ser consideradas en un análisis de regresión logística. Para la transformación de GB, TAS, FC y FR hay significación estadística en modelo univariado si se los divide en terciles.
- Para estos métodos de selección automáticos decidimos eliminar las variables que no son de interés para el propósito de este trabajo.
Por un lado se decide no analizar scores por los siguientes motivos: - Score de RIETE: fue diseñado para trombosis venosa profunda y tromboembolismo de pulmon. Esta población solo incluye pacientes con tromboembolismo pulmonar, por lo cuál el score siempre puntua 1 o más. - Score de PESI fue ideado para evaluar mortalidad. - Score de Wells fue ideado para evaluar la probabilidad pre-test de TEP.
Se deja solamente el score de HASBLED, con la salvedad de que este score fue cargado por el personal que llenaba la base y no se constataron todas las variables de forma separada (uso de antiagregantes, hipertensión descontrolada).
Por otro lado se eliminan las variables que no influyen en el sangrado sino que son consecuencia temporal posterior al mismo: uso de filtro de VCI (FVCI).
Decidimos eliminar las siguientes variables PESI_Taquicardia, PESI_Hipotensión, PESI_Taquipnea, PESI_Hipotermia y CC_SaO90 (saturacíon menor a 90%) ya que incluiremos las variables continuas en el análisis: FR, FC, TAS y saturación de oxígeno aire ambiente al ingreso.
Se eliminan otras variables que tampoco son de interes para el analisis: Servicio a Cargo, Motivo de Internación, Uso de DOACs al alta, Tipo de ACO al alta (la mayoria de los pacientes sangraron en la internacion y no en el seguimienoto a 30 días), uso de ACO en la internación (solamente 3 de 23 pacientes no recibieron anticoagulacion por sangrado), Alta carga trombótica por TAC, Complicaciones hemodinámicas en la internación.
Se decidió incluir las variables TEP/TVP previo global y Hemorragia Mayor global en vez de las variables TEP previo menor a 3 meses y Hemorragia mayor reciente.
Dejamos solamente la variable Clearence de creatinina ya que es la que mejor correlaciona, eliminamos para estos métodos de selección Pac_IRC_Global, Lab_Cr.
Por otro lado, se tomo la decisión de dictomizar la variable Motivo de internación en 2: por TEP o no por TEP, debido a la poca cantidad de casos por otros motivos no se pudo realizar un análisis con más categorías. También se dicotomizó la variable Edad en mayores o menores de 75 años, ya que la variable cuantitativa no cumple con el supuesto de linealidad y es de nuestro interés que sea agregada. La dicotomización en 75 se realizó por bibliografía, ya que scores como el de RIETE utilizan esta edad para evaluar el riesgo de sangrado.
base_imp <- base_backup
base_imp <- base_imp[,!names(base_imp) %in% c("Pac_IRCglobal","Lab_Cr", "ECOTT_DisfVD", "DOAC_si_vs_no","Alta_Tto_TiposACO", "FVCI", "TiempoInt", "RIETE_Grupo", "ACOint", "Pac_Reposo", "PESI_Hipotermia", "ECOTT_FSVI", "Int_O_Alto_Riesgo_Calc", "PESI_Taquicardia", "PESI_Taquipnea", "ServicioCargo", "TL_cual", "PESI_Det_Sens", "PESI_Hipotension", "CC_SaO90", "Pac_TEP_previo_menor_3_meses", "PESIECHO", "PESIcalc", "Wells", "HASBLED", "RIETE_Calc", "MotInt", "Trauma", "Tto_Reperf", "Compl_SoporteHD_NO", "Lab_Hb_Corte", "Lab_Plaq_Corte", "EstRiesgo", "Lab_Hto", "PESI_Calc", "PESIsCalc", "PESI_clasif", "Pac_Cobertura", "Pac_Edad_Corte", "Alta_Carga_Trombo_TAC", "miss.univ", "Pac_Hemorragia_Previa_Mayor_Reciente", "PESIs_Clasif", "IMC")]
- El segundo método de análisis para la selección de variables es Random Forest. En este método no incluimos las variables transformadas.
base_imp <- map_if(.x = base_imp, .p = is.character, .f = as.factor) %>%
as.data.frame()
modelo_randforest2 <- randomForest(formula = Compl_Sang_Todos ~ . , data = base_imp, mtry = 5,
importance = TRUE, ntree = 1000)
importancia2 <- as.data.frame(modelo_randforest2$importance)
importancia2 <- rownames_to_column(importancia2, var = "variable")
importancia2 <- rename.variable(importancia2, "%IncMSE", "MeanDecreaseAccuracy")
importancia2 <- rename.variable(importancia2, "IncNodePurity", "MeanDecreaseGini")
p1_2 <- ggplot (data = importancia2, aes ( x = reorder (variable, MeanDecreaseAccuracy),
y = MeanDecreaseAccuracy,
fill = MeanDecreaseAccuracy)) +
labs (x = "variable", title = "Reduccion de Accuracy") +
geom_col () +
coord_flip () +
theme_bw () +
theme(legend.position = "bottom")
p1_2
Se observan que las variables con mayor importancia son: ClCr, Edad, Hemoglobina, Peso, FC, PSAP, Plaquetas, Cirugía previa (Pac_Cx_Total), Saturación O2 y GB.
- Se decide realizar Lasso como tercera y úlitma forma de selección de variables.
x_2 <- model.matrix(Compl_Sang_Todos ~., base_imp)
y_2 <- base_imp$Compl_Sang_Todos
vis_miss(base_imp)
dim(x_2) #hay mas variables porque hace dummies de las categoricas ; )
[1] 684 34
lasso_m2 <- glmnet(x_2, y=as.factor(y_2), alpha=1, family="binomial", lambda = NULL)
plot(lasso_m2,xvar="lambda",label=TRUE)
plot(lasso_m2,xvar="norm",label=TRUE)
set.seed(1)
lasso_m2_cv <- cv.glmnet(x_2, y=as.factor(y_2), alpha=1, family="binomial", nfolds=10)
# guardar los lambdas
min_lambda_lasso_m2_cv <- lasso_m2_cv$lambda.min
best_lambda_lasso_m2_cv <- lasso_m2_cv$lambda.1se
plot(lasso_m2_cv)
abline(v=log(min_lambda_lasso_m2_cv), col="blue")
abline(v=log(best_lambda_lasso_m2_cv), col="orange")
#### se calculan los coeficientes para el lambda seleccionado
vars_lambda_best <- predict(lasso_m2_cv, type="coefficients", s=best_lambda_lasso_m2_cv)
vars_lambda_min <- predict(lasso_m2_cv, type="coefficients", s=min_lambda_lasso_m2_cv)
lasso_m3 <- glmnet(x_2, y=as.factor(y_2), alpha=1, family="binomial", lambda = min_lambda_lasso_m2_cv)
coef(lasso_m3)
35 x 1 sparse Matrix of class "dgCMatrix"
s0
(Intercept) 1.3382023
(Intercept) .
Pac_SexMasculino 0.0130201
Pac_Edad -0.0017390
Pac_HTASi .
Pac_DBTSi .
Pac_TBQNo .
Pac_TBQTabaquista .
Pac_DLPSi .
Pac_ICCSi .
Pac_FASi .
Pac_ETVpreSi -0.2363857
Pac_DeambSi .
Pac_EPOCSi .
Pac_ACVglobalSi .
Pac_Hemorragia_Previa_Mayor_TodasSi .
Pac_EnfAutoSi .
Pac_SmeProcoagSi -0.4408059
PESI_CancerSi .
Pac_ACO_PreviaSi .
Peso .
CC_Horas_Sx_Admision .
CC_FC_Ingreso 0.0026941
CC_TAS_Ingreso -0.0025190
CC_FR_Ingreso .
CC_SaO_Ingreso -0.0202962
Pac_Cx_TotalSi 0.2433858
Lab_Hb -0.0796566
Lab_GB 0.0000114
Lab_Plaq .
Biomarc_posSi 0.0918273
ECOTT_TAPSE -0.0526060
ECOTT_PSAP 0.0026498
ClCr .
TEP_motivo_intSi -0.2181575
Las variaboes significativas son: ACV, Hemorragia Mayor Previa, FC, TAS, Saturación O2, Cirugía previa, Hb, GB, Biomarcadores y TAPSE.
base_validation <- base_backup
base_validation$CC_FR_Ingreso_Terc <- base_sens$CC_FR_Ingreso_Terc
base_validation$Log_Lab_GB_Terc <- base_sens$Log_Lab_GB_Terc
base_validation$Log_TAS_Terc <- base_sens$Log_TAS_Terc
base_validation$Log_FC_Terc <- base_sens$Log_FC_Terc
base_validation$sangrado_recod <- base_imp$Compl_Sang_Todos
base_validation$sangrado_recod <- as.factor(base_validation$sangrado_recod)
base_validation$Lab_Plaq_Corte <- ifelse (base_validation$Lab_Plaq <= 100000, 1, 0)
base_validation$Pac_Edad_Corte <- ifelse (base_validation$Pac_Edad >= 75, 1, 0)
base_validation1 <- base_validation
base_validation11 <- base_validation
library(caret)
fitControl <- trainControl(
method = "LOOCV", #leave one out cross validation
classProbs = T,
summaryFunction = twoClassSummary )
LOOCV_m7 = train(
form = sangrado_recod ~ Pac_ACVglobal + Pac_Hemorragia_Previa_Mayor_Todas + Pac_IRCglobal + Pac_Cx_Total + ECOTT_DisfVD + Lab_Hb + Log_Lab_GB_Terc + Log_TAS_Terc + Log_FC_Terc,
data = base_validation11,
trControl = fitControl,
method = "glm",
family = "binomial",
metric = "ROC")
LOOCV_m7$pred
LOOCV_m7$results #salen al reves sensibilidad y especificidad
LOOCV_m7$pred
# calculamos todas las metricas
roc_LOOCV_m7<- roc(base_validation1$sangrado_recod ~ LOOCV_m7$pred[ , 4], auc=TRUE, ci=TRUE, plot=FALSE)
Setting levels: control = No, case = Si
Setting direction: controls < cases
Rta_predicha_LOOCV_m7 <- ifelse(LOOCV_m7$pred[,4]>0.3, 1, 0)
table(base_validation1$sangrado_recod , Rta_predicha_LOOCV_m7)
Rta_predicha_LOOCV_m7
0 1
No 621 6
Si 56 1
table(base_imp$Compl_Sang_Todos, Rta_predicha_LOOCV_m7)
Rta_predicha_LOOCV_m7
0 1
No 621 6
Si 56 1
Rta_predicha_LOOCV_m7 <- as.factor(Rta_predicha_LOOCV_m7)
levels(Rta_predicha_LOOCV_m7) <- c("No", "Si")
base_imp$Compl_Sang_Todos <- as.factor(base_imp$Compl_Sang_Todos)
levels(base_imp$Compl_Sang_Todos) <- c("No", "Si")
table(base_imp$Compl_Sang_Todos, Rta_predicha_LOOCV_m7)
Rta_predicha_LOOCV_m7
No Si
No 621 6
Si 56 1
LOOCV_m7_sensibilidad <- caret::sensitivity(base_imp$Compl_Sang_Todos , Rta_predicha_LOOCV_m7, positive="Si", negative = "No")
LOOCV_m7_especificidad <- caret::specificity(base_imp$Compl_Sang_Todos , Rta_predicha_LOOCV_m7, positive="Si", negative = "No")
LOOCV_m7_AUCROC <- roc_LOOCV_m7$auc
LOOCV_m7_accuracy <- mean(base_imp$Compl_Sang_Todos == Rta_predicha_LOOCV_m7)
LOOCV_m7_precision <- caret::precision(base_imp$Compl_Sang_Todos,Rta_predicha_LOOCV_m7)
LOOCV_m7_VPN <- caret::negPredValue(base_imp$Compl_Sang_Todos,Rta_predicha_LOOCV_m7)
LOOCV_m7_TFP <- 1-LOOCV_m7_especificidad
plot(LOOCV_m7$finalModel)
NA
Utilizamos las variables cuantitativas que cumplen con criterio de linealidad de logits En el caso de las variables FC, TAS, SatO2 y GB usamos las variables transformadas.
base_validation$CC_FR_Ingreso_Terc <- base_sens$CC_FR_Ingreso_Terc
base_validation$Log_Lab_GB_Terc <- base_sens$Log_Lab_GB_Terc
base_validation$Log_TAS_Terc <- base_sens$Log_TAS_Terc
base_validation$Log_FC_Terc <- base_sens$Log_FC_Terc
base_validation$Log_CC_SaO_Ingreso <- base_logit2$Log_CC_SaO_Ingreso
base_validation2 <- base_validation
fitControl <- trainControl(
method = "LOOCV", #leave one out cross validation
classProbs = T,
summaryFunction = twoClassSummary )
LOOCV_m6= train(
form = sangrado_recod ~ Pac_ACVglobal + Pac_Hemorragia_Previa_Mayor_Todas + Biomarc_pos + Lab_Hb + Log_Lab_GB_Terc + ECOTT_TAPSE + Log_FC_Terc + Log_TAS_Terc + Log_CC_SaO_Ingreso + Pac_Cx_Total,
data = base_validation2,
trControl = fitControl,
method = "glm",
family = "binomial",
metric = "ROC"
)
# La métrica por defecto es accuracy. Se pueden setear otras como ROC y se pueden crear las propias
# Como aca no estamos tuneando ningun parametro, podemos usar las propabilidades predichas finales del LOOCV
# Con las probabilidades predichas podemos hacer lo que nos venga mejor
# Si usamos otros algoritmos/metodos durante el proceso de train se ajustan parametros iterativamente y ahi la métrica que
# se pone (aca "ROC") tiene mas peso.
# Para ver el resultado solo basta con poner el nombre del objeto
LOOCV_m6
Generalized Linear Model
684 samples
10 predictor
2 classes: 'No', 'Si'
No pre-processing
Resampling: Leave-One-Out Cross-Validation
Summary of sample sizes: 683, 683, 683, 683, 683, 683, ...
Resampling results:
ROC Sens Spec
0.656 0.998 0.0175
LOOCV_m6$results
LOOCV_m6$pred
# aca como elegimos LOOCV hay un valor predicho para cada uno, si elegimos k-fold-CV el resultado es un medida con su SD
# ahora calculamos todas las metricas
roc_LOOCV_m6<- roc(base_validation2$sangrado_recod ~ LOOCV_m6$pred[,4], auc=TRUE, ci=TRUE, plot=FALSE)
Setting levels: control = No, case = Si
Setting direction: controls < cases
Rta_predicha_LOOCV_m6 <- ifelse(LOOCV_m6$pred[,4]>0.3, 1, 0)
table(base_imp$Compl_Sang_Todos, Rta_predicha_LOOCV_m6)
Rta_predicha_LOOCV_m6
0 1
No 618 9
Si 53 4
Rta_predicha_LOOCV_m6 <- as.factor(Rta_predicha_LOOCV_m6)
levels(Rta_predicha_LOOCV_m6) <- c("No", "Si")
base_imp$Compl_Sang_Todos <- as.factor(base_imp$Compl_Sang_Todos)
levels(base_imp$Compl_Sang_Todos) <- c("No", "Si")
table(base_imp$Compl_Sang_Todos, Rta_predicha_LOOCV_m6)
Rta_predicha_LOOCV_m6
No Si
No 618 9
Si 53 4
LOOCV_m6_sensibilidad <- caret::sensitivity(base_imp$Compl_Sang_Todos , Rta_predicha_LOOCV_m6, positive="Si", negative = "No")
LOOCV_m6_especificidad <- caret::specificity(base_imp$Compl_Sang_Todos , Rta_predicha_LOOCV_m6, positive="Si", negative = "No")
LOOCV_m6_AUCROC <- roc_LOOCV_m6$auc
LOOCV_m6_accuracy <- mean(base_imp$Compl_Sang_Todos == Rta_predicha_LOOCV_m6)
LOOCV_m6_precision <- caret::precision(base_imp$Compl_Sang_Todos,Rta_predicha_LOOCV_m6)
LOOCV_m6_VPN <- caret::negPredValue(base_imp$Compl_Sang_Todos,Rta_predicha_LOOCV_m6)
LOOCV_m6_TFP <- 1-LOOCV_m6_especificidad
plot(LOOCV_m6$finalModel)
NA
NA
NA
Utilizamos las variables cuantitativas que cumplen con criterio de linealidad de logits En el caso de las variables FC, TAS, SatO2 y GB usamos las variables transformadas.
base_validation$CC_FR_Ingreso_Terc <- base_sens$CC_FR_Ingreso_Terc
base_validation$Log_Lab_GB_Terc <- base_sens$Log_Lab_GB_Terc
base_validation$Log_TAS_Terc <- base_sens$Log_TAS_Terc
base_validation$Log_FC_Terc <- base_sens$Log_FC_Terc
base_validation$Log_CC_SaO_Ingreso <- base_logit2$Log_CC_SaO_Ingreso
base_validation3 <- base_validation
LOOCV_m9rf = train(
form = sangrado_recod ~ Lab_Hb + Log_FC_Terc + ECOTT_PSAP + Log_TAS_Terc + Pac_Cx_Total + Log_CC_SaO_Ingreso + Log_Lab_GB_Terc,
data = base_validation3,
trControl = fitControl,
method = "glm",
family = "binomial",
metric = "ROC"
)
# nuevamente extraemos las probabilidades y calculamos las metricas
roc_LOOCV_m9rf<- roc(base_validation3$sangrado_recod ~ LOOCV_m9rf$pred[,4], auc=TRUE, ci=TRUE, plot=FALSE)
Setting levels: control = No, case = Si
Setting direction: controls < cases
Rta_predicha_LOOCV_m9rf <- ifelse(LOOCV_m9rf$pred[,4]>0.3, 1, 0)
#Rta_predicha_LOOCV_m9rf <- as.factor(Rta_predicha_LOOCV_m9rf)
table(base_imp$Compl_Sang_Todos, Rta_predicha_LOOCV_m9rf)
Rta_predicha_LOOCV_m9rf
0 1
No 618 9
Si 55 2
Rta_predicha_LOOCV_m9rf <- as.factor(Rta_predicha_LOOCV_m9rf)
levels(Rta_predicha_LOOCV_m9rf) <- c("No", "Si")
base_imp$Compl_Sang_Todos <- as.factor(base_imp$Compl_Sang_Todos)
levels(base_imp$Compl_Sang_Todos) <- c("No", "Si")
table(base_imp$Compl_Sang_Todos, Rta_predicha_LOOCV_m9rf)
Rta_predicha_LOOCV_m9rf
No Si
No 618 9
Si 55 2
LOOCV_m9rf_sensibilidad <- caret::sensitivity(base_imp$Compl_Sang_Todos , Rta_predicha_LOOCV_m9rf, positive="Si", negative = "No")
LOOCV_m9rf_especificidad <- caret::specificity(base_imp$Compl_Sang_Todos , Rta_predicha_LOOCV_m9rf, positive="Si", negative = "No")
LOOCV_m9rf_AUCROC <- roc_LOOCV_m9rf$auc
LOOCV_m9rf_accuracy <- mean(base_imp$Compl_Sang_Todos == Rta_predicha_LOOCV_m9rf)
LOOCV_m9rf_precision <- caret::precision(base_imp$Compl_Sang_Todos,Rta_predicha_LOOCV_m9rf)
LOOCV_m9rf_VPN <- caret::negPredValue(base_imp$Compl_Sang_Todos,Rta_predicha_LOOCV_m9rf)
LOOCV_m9rf_TFP <- 1-LOOCV_m9rf_especificidad
plot(LOOCV_m9rf$finalModel)
NA
En este caso utilizaremos Edad >75 años y Plaquetas <100.000 como punto de corte
base_validation$CC_FR_Ingreso_Terc <- base_sens$CC_FR_Ingreso_Terc
base_validation$Log_Lab_GB_Terc <- base_sens$Log_Lab_GB_Terc
base_validation$Log_TAS_Terc <- base_sens$Log_TAS_Terc
base_validation$Log_FC_Terc <- base_sens$Log_FC_Terc
base_validation$Log_CC_SaO_Ingreso <- base_logit2$Log_CC_SaO_Ingreso
base_validation4 <- base_validation
LOOCV_m8= train(
form = sangrado_recod ~ Pac_IRCglobal + Pac_Edad_Corte + Lab_Plaq_Corte + Pac_Hemorragia_Previa_Mayor_Reciente + Pac_Cx_Total + Lab_Hb,
data = base_validation4,
trControl = fitControl,
method = "glm",
family = "binomial",
metric = "ROC"
)
LOOCV_m8
Generalized Linear Model
684 samples
6 predictor
2 classes: 'No', 'Si'
No pre-processing
Resampling: Leave-One-Out Cross-Validation
Summary of sample sizes: 683, 683, 683, 683, 683, 683, ...
Resampling results:
ROC Sens Spec
0.58 1 0
LOOCV_m8$results #salen al reves sensibilidad y especificidad
LOOCV_m8$pred
# calculamos todas las metricas
roc_LOOCV_m8<- roc(base_validation4$sangrado_recod ~ LOOCV_m8$pred[,4], auc=TRUE, ci=TRUE, plot=FALSE)
Setting levels: control = No, case = Si
Setting direction: controls < cases
Rta_predicha_LOOCV_m8 <- ifelse(LOOCV_m8$pred[,4]>0.3, 1, 0)
table(base_imp$Compl_Sang_Todos, Rta_predicha_LOOCV_m8)
Rta_predicha_LOOCV_m8
0 1
No 623 4
Si 55 2
Rta_predicha_LOOCV_m8 <- as.factor(Rta_predicha_LOOCV_m8)
levels(Rta_predicha_LOOCV_m8) <- c("No", "Si")
base_imp$Compl_Sang_Todos <- as.factor(base_imp$Compl_Sang_Todos)
levels(base_imp$Compl_Sang_Todos) <- c("No", "Si")
table(base_imp$Compl_Sang_Todos, Rta_predicha_LOOCV_m8)
Rta_predicha_LOOCV_m8
No Si
No 623 4
Si 55 2
LOOCV_m8_sensibilidad <- caret::sensitivity(base_imp$Compl_Sang_Todos , Rta_predicha_LOOCV_m8, positive="Si", negative = "No")
LOOCV_m8_especificidad <- caret::specificity(base_imp$Compl_Sang_Todos , Rta_predicha_LOOCV_m8, positive="Si", negative = "No")
LOOCV_m8_AUCROC <- roc_LOOCV_m8$auc
LOOCV_m8_accuracy <- mean(base_imp$Compl_Sang_Todos == Rta_predicha_LOOCV_m8)
LOOCV_m8_precision <- caret::precision(base_imp$Compl_Sang_Todos,Rta_predicha_LOOCV_m8)
LOOCV_m8_VPN <- caret::negPredValue(base_imp$Compl_Sang_Todos,Rta_predicha_LOOCV_m8)
LOOCV_m8_TFP <- 1-LOOCV_m8_especificidad
plot(LOOCV_m8$finalModel)
NA
NA
En este modelo intentaremos incluir Edad, Plaquetas y ClCr que no cumplen con linealidad de logits. Además intentaremos modelar las variables sin transformar de GB y TAS, FC y SatO2 y FR.
base_gam <- base_backup
library(gamlss)
Loading required package: splines
Loading required package: gamlss.data
Attaching package: ‘gamlss.data’
The following object is masked from ‘package:VIM’:
sleep
The following object is masked from ‘package:boot’:
aids
The following object is masked from ‘package:datasets’:
sleep
Loading required package: gamlss.dist
Loading required package: parallel
********** GAMLSS Version 5.4-3 **********
For more on GAMLSS look at https://www.gamlss.com/
Type gamlssNews() to see new features/changes/bug fixes.
Attaching package: ‘gamlss’
The following object is masked from ‘package:lme4’:
refit
The following object is masked from ‘package:glmmTMB’:
refit
The following object is masked from ‘package:epiDisplay’:
cs
The following object is masked from ‘package:caret’:
calibration
library(ggpubr)
library(skimr)
Attaching package: ‘skimr’
The following object is masked from ‘package:naniar’:
n_complete
The following object is masked from ‘package:corrr’:
focus
The following object is masked from ‘package:sjmisc’:
to_long
ggplot(data = base_gam, aes(x = Lab_Hb)) +
geom_density(alpha = 0.5, fill = "gray50") +
geom_rug(alpha = 0.2) +
labs(title = "Distribución de Hb") +
theme_bw()
ggplot(data = base_gam, aes(x = ClCr)) +
geom_density(alpha = 0.5, fill = "gray50") +
geom_rug(alpha = 0.2) +
labs(title = "Distribución de ClCr") +
theme_bw()
ggplot(data = base_gam, aes(x = Lab_Plaq)) +
geom_density(alpha = 0.5, fill = "gray50") +
geom_rug(alpha = 0.2) +
labs(title = "Distribución de Plaq") +
theme_bw()
ggplot(data = base_gam, aes(x = Lab_GB)) +
geom_density(alpha = 0.5, fill = "gray50") +
geom_rug(alpha = 0.2) +
labs(title = "Distribución de GB") +
theme_bw()
ggplot(data = base_gam, aes(x = Pac_Edad)) +
geom_density(alpha = 0.5, fill = "gray50") +
geom_rug(alpha = 0.2) +
labs(title = "Distribución de Edad") +
theme_bw()
#Modelo básico de regresión logistica, sin smooths, para poder comparar después
base_gam$Compl_Sang_Todos <- as.integer(base_gam$Compl_Sang_Todos) -1
modelo_glm <- gamlss(
formula = Compl_Sang_Todos ~ CC_TAS_Ingreso + (ClCr) + (Lab_Hb) + Lab_Plaq + Pac_Edad + CC_SaO_Ingreso + CC_FC_Ingreso + Lab_GB,
family = BI(mu.link = "logit"),
data = base_gam,
trace = FALSE
)
summary(modelo_glm)
******************************************************************
Family: c("BI", "Binomial")
Call: gamlss(formula = Compl_Sang_Todos ~ CC_TAS_Ingreso + (ClCr) + (Lab_Hb) + Lab_Plaq + Pac_Edad + CC_SaO_Ingreso +
CC_FC_Ingreso + Lab_GB, family = BI(mu.link = "logit"), data = base_gam, trace = FALSE)
Fitting method: RS()
------------------------------------------------------------------
Mu link function: logit
Mu Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.130754128 2.420241100 1.71 0.088 .
CC_TAS_Ingreso -0.007652920 0.006735288 -1.14 0.256
ClCr -0.000325126 0.002872143 -0.11 0.910
Lab_Hb -0.154388585 0.073963373 -2.09 0.037 *
Lab_Plaq -0.000000521 0.000012839 -0.04 0.968
Pac_Edad -0.010153411 0.009005908 -1.13 0.260
CC_SaO_Ingreso -0.046127362 0.023143023 -1.99 0.047 *
CC_FC_Ingreso 0.009934584 0.006721784 1.48 0.140
Lab_GB 0.000019287 0.000046923 0.41 0.681
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
------------------------------------------------------------------
No. of observations in the fit: 684
Degrees of Freedom for the fit: 9
Residual Deg. of Freedom: 675
at cycle: 2
Global Deviance: 369
AIC: 387
SBC: 428
******************************************************************
plot(modelo_glm)
******************************************************************
Summary of the Randomised Quantile Residuals
mean = 0.0289
variance = 1
coef. of skewness = -0.0242
coef. of kurtosis = 2.99
Filliben correlation coefficient = 1
******************************************************************
wp(modelo_glm, ylim.all = 1)
#Exploracion de otras distribuciones que ajusten mejor
base_binom <- base_gam[,names(base_gam) %in% c("Compl_Sang_Todos", "Biomarc_pos" , "ECOTT_DisfVD", "ClCr", "Lab_Hb", "Lab_GB", "Pac_Edad", "CC_FC_Ingreso", "CC_TAS_Ingreso", "CC_SaO_Ingreso", "Pac_ACVglobal", "Pac_Cx_Total", "Pac_Hemorragia_Previa_Mayor_Todas")]
distribuciones <- fitDist(
base_binom$Compl_Sang_Todos,
k = 2, # esta penalización equivale al AIC
type = "binom",
trace = FALSE,
try.gamlss = TRUE
)
|
| | 0%
|
|=================== | 14%
|
|====================================== | 29%
|
|========================================================= | 43%
|
|=========================================================================== | 57%
|
|============================================================================================== | 71%
Error in solve.default(oout$hessian) :
Lapack routine dgesv: system is exactly singular: U[1,1] = 0
|
|================================================================================================================= | 86%
|
|====================================================================================================================================| 100%
distribuciones$fits %>%
enframe(name = "distribucion", value = "GAIC") %>%
arrange(GAIC)
distribuciones
Family: c("BI", "Binomial")
Fitting method: "nlminb"
Call: gamlssML(formula = y, family = BI)
Mu Coefficients:
[1] -2.4
Degrees of Freedom for the fit: 1 Residual Deg. of Freedom 683
Global Deviance: 392
AIC: 394
SBC: 399
#Se explorò con otras distribuciones: BB, DBI, NBI, NBII. Por AIC el mejor modelo es con BI.
#Aplicar smoothing a las variables continuas
#P-Splines (Penalized Smoothing Splines) a los predictores continuos del modelo. Esta función emplea el método de local maximum likelihood para seleccionar automáticamente los grados de libertad efectivos óptimos (flexibilidad).
modelo_glm2 <- gamlss(
formula = Compl_Sang_Todos ~ pb(CC_TAS_Ingreso) + pb(ClCr) + pb(Lab_Hb) + pb(Lab_Plaq) + pb(Pac_Edad) + pb(CC_SaO_Ingreso) + pb(CC_FC_Ingreso) + pb(Lab_GB),
family = BI(mu.link = "logit"),
data = base_gam,
trace = FALSE
)
Warning: additive.fit convergence not obtained in 30 iterationsWarning: additive.fit convergence not obtained in 30 iterationsWarning: additive.fit convergence not obtained in 30 iterations
summary(modelo_glm2)
******************************************************************
Family: c("BI", "Binomial")
Call: gamlss(formula = Compl_Sang_Todos ~ pb(CC_TAS_Ingreso) + pb(ClCr) + pb(Lab_Hb) + pb(Lab_Plaq) + pb(Pac_Edad) +
pb(CC_SaO_Ingreso) + pb(CC_FC_Ingreso) + pb(Lab_GB), family = BI(mu.link = "logit"), data = base_gam, trace = FALSE)
Fitting method: RS()
------------------------------------------------------------------
Mu link function: logit
Mu Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.426289683 2.162051784 1.58 0.11
pb(CC_TAS_Ingreso) -0.006174952 0.006680584 -0.92 0.36
pb(ClCr) 0.000343694 0.002995780 0.11 0.91
pb(Lab_Hb) -0.140895979 0.064770486 -2.18 0.03 *
pb(Lab_Plaq) -0.000000893 0.000012832 -0.07 0.94
pb(Pac_Edad) -0.010852622 0.009003372 -1.21 0.23
pb(CC_SaO_Ingreso) -0.030686092 0.020926442 -1.47 0.14
pb(CC_FC_Ingreso) 0.010804077 0.007192880 1.50 0.13
pb(Lab_GB) -0.000066456 0.000043404 -1.53 0.13
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
------------------------------------------------------------------
NOTE: Additive smoothing terms exist in the formulas:
i) Std. Error for smoothers are for the linear effect only.
ii) Std. Error for the linear terms maybe are not accurate.
------------------------------------------------------------------
No. of observations in the fit: 684
Degrees of Freedom for the fit: 14.7
Residual Deg. of Freedom: 669
at cycle: 7
Global Deviance: 350
AIC: 380
SBC: 447
******************************************************************
plot(modelo_glm2)
******************************************************************
Summary of the Randomised Quantile Residuals
mean = -0.00585
variance = 0.961
coef. of skewness = 0.0261
coef. of kurtosis = 3.05
Filliben correlation coefficient = 0.999
******************************************************************
wp(modelo_glm2, ylim.all = 1)
#La función cs() permite incorporar Cubic Splines a los predictores continuos del modelo. A diferencia de pb(), en este caso sí es necesario especificar los grados de libertad.
modelo_glm4 <- gamlss(
formula = Compl_Sang_Todos ~ cs(CC_TAS_Ingreso, df = 2) + cs(ClCr, df = 2) + cs(Lab_Hb, df = 2) + cs(Lab_Plaq, df = 2) + cs(Pac_Edad, df = 2) + cs(CC_SaO_Ingreso, df = 2) + cs(CC_FC_Ingreso, df = 2) + cs(Lab_GB, df = 2),
family = BI(mu.link = "logit"),
data = base_gam,
trace = FALSE
)
summary(modelo_glm4)
******************************************************************
Family: c("BI", "Binomial")
Call: gamlss(formula = Compl_Sang_Todos ~ cs(CC_TAS_Ingreso, df = 2) + cs(ClCr, df = 2) + cs(Lab_Hb, df = 2) +
cs(Lab_Plaq, df = 2) + cs(Pac_Edad, df = 2) + cs(CC_SaO_Ingreso, df = 2) + cs(CC_FC_Ingreso, df = 2) + cs(Lab_GB,
df = 2), family = BI(mu.link = "logit"), data = base_gam, trace = FALSE)
Fitting method: RS()
------------------------------------------------------------------
Mu link function: logit
Mu Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.7830071 2.3433231 0.76 0.45
cs(CC_TAS_Ingreso, df = 2) -0.0059450 0.0071826 -0.83 0.41
cs(ClCr, df = 2) 0.0008691 0.0032423 0.27 0.79
cs(Lab_Hb, df = 2) -0.1517990 0.0698363 -2.17 0.03 *
cs(Lab_Plaq, df = 2) -0.0000011 0.0000128 -0.09 0.93
cs(Pac_Edad, df = 2) -0.0111952 0.0095433 -1.17 0.24
cs(CC_SaO_Ingreso, df = 2) -0.0255051 0.0224931 -1.13 0.26
cs(CC_FC_Ingreso, df = 2) 0.0116604 0.0077269 1.51 0.13
cs(Lab_GB, df = 2) 0.0000271 0.0000478 0.57 0.57
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
------------------------------------------------------------------
NOTE: Additive smoothing terms exist in the formulas:
i) Std. Error for smoothers are for the linear effect only.
ii) Std. Error for the linear terms maybe are not accurate.
------------------------------------------------------------------
No. of observations in the fit: 684
Degrees of Freedom for the fit: 25
Residual Deg. of Freedom: 659
at cycle: 2
Global Deviance: 336
AIC: 386
SBC: 499
******************************************************************
plot(modelo_glm4)
******************************************************************
Summary of the Randomised Quantile Residuals
mean = -0.0104
variance = 1.04
coef. of skewness = 0.0168
coef. of kurtosis = 2.96
Filliben correlation coefficient = 0.999
******************************************************************
wp(modelo_glm4, ylim.all = 1)
#Hay métodos con redes neuronales para smoothing pero preferimos no meternos en ese territorio
###SELECCION DEL MEJOR MODELO###
GAIC(modelo_glm, modelo_glm2,modelo_glm4)
#La mejor función smooth es con GLM2, es decir con P-splines Penalized Smoothing Splines.
#Ahora sacamos las variables que no son significativas y exploramos incluyendo las categóricas:
modelo_glm2_1 <- gamlss(
formula = Compl_Sang_Todos ~ pb(ClCr) + pb(Lab_Hb) + pb(Lab_Plaq) + pb(CC_FC_Ingreso) + pb(Lab_GB),
family = BI(mu.link = "logit"),
data = base_gam,
trace = FALSE
)
Warning: additive.fit convergence not obtained in 30 iterationsWarning: additive.fit convergence not obtained in 30 iterations
summary(modelo_glm2_1)
******************************************************************
Family: c("BI", "Binomial")
Call: gamlss(formula = Compl_Sang_Todos ~ pb(ClCr) + pb(Lab_Hb) + pb(Lab_Plaq) + pb(CC_FC_Ingreso) + pb(Lab_GB),
family = BI(mu.link = "logit"), data = base_gam, trace = FALSE)
Fitting method: RS()
------------------------------------------------------------------
Mu link function: logit
Mu Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.12541967 0.95099511 -1.18 0.237
pb(ClCr) 0.00179779 0.00269113 0.67 0.504
pb(Lab_Hb) -0.14236010 0.06466525 -2.20 0.028 *
pb(Lab_Plaq) -0.00000111 0.00001283 -0.09 0.931
pb(CC_FC_Ingreso) 0.01202378 0.00667343 1.80 0.072 .
pb(Lab_GB) -0.00005690 0.00003705 -1.54 0.125
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
------------------------------------------------------------------
NOTE: Additive smoothing terms exist in the formulas:
i) Std. Error for smoothers are for the linear effect only.
ii) Std. Error for the linear terms maybe are not accurate.
------------------------------------------------------------------
No. of observations in the fit: 684
Degrees of Freedom for the fit: 12.7
Residual Deg. of Freedom: 671
at cycle: 6
Global Deviance: 356
AIC: 382
SBC: 439
******************************************************************
plot(modelo_glm2_1)
******************************************************************
Summary of the Randomised Quantile Residuals
mean = 0.0142
variance = 0.921
coef. of skewness = -0.105
coef. of kurtosis = 2.98
Filliben correlation coefficient = 0.999
******************************************************************
wp(modelo_glm2_1, ylim.all = 1)
modelo_glm2_2 <- gamlss(
formula = Compl_Sang_Todos ~ pb(CC_FC_Ingreso) + pb(Lab_Hb) + Biomarc_pos + ECOTT_DisfVD + pb(ClCr) + Pac_ACVglobal,
family = BI(mu.link = "logit"),
data = base_gam,
trace = FALSE
)
summary(modelo_glm2_2)
******************************************************************
Family: c("BI", "Binomial")
Call: gamlss(formula = Compl_Sang_Todos ~ pb(CC_FC_Ingreso) + pb(Lab_Hb) + Biomarc_pos + ECOTT_DisfVD + pb(ClCr) +
Pac_ACVglobal, family = BI(mu.link = "logit"), data = base_gam, trace = FALSE)
Fitting method: RS()
------------------------------------------------------------------
Mu link function: logit
Mu Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.43275 0.93764 -2.59 0.0097 **
pb(CC_FC_Ingreso) 0.01038 0.00629 1.65 0.0995 .
pb(Lab_Hb) -0.15278 0.05989 -2.55 0.0110 *
Biomarc_posSi 0.43668 0.31599 1.38 0.1674
ECOTT_DisfVDSi 0.73800 0.30017 2.46 0.0142 *
pb(ClCr) 0.00230 0.00274 0.84 0.4003
Pac_ACVglobalSi -0.01700 0.62932 -0.03 0.9785
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
------------------------------------------------------------------
NOTE: Additive smoothing terms exist in the formulas:
i) Std. Error for smoothers are for the linear effect only.
ii) Std. Error for the linear terms maybe are not accurate.
------------------------------------------------------------------
No. of observations in the fit: 684
Degrees of Freedom for the fit: 9.14
Residual Deg. of Freedom: 675
at cycle: 5
Global Deviance: 362
AIC: 381
SBC: 422
******************************************************************
plot(modelo_glm2_2)
******************************************************************
Summary of the Randomised Quantile Residuals
mean = -0.0498
variance = 0.976
coef. of skewness = -0.0386
coef. of kurtosis = 2.83
Filliben correlation coefficient = 0.999
******************************************************************
wp(modelo_glm2_2, ylim.all = 1)
modelo_glm2_3 <- gamlss(
formula = Compl_Sang_Todos ~ pb(Lab_Hb) + Biomarc_pos + ECOTT_DisfVD + Pac_Edad_Corte + Pac_ACVglobal,
family = BI(mu.link = "logit"),
data = base_gam,
trace = FALSE
)
summary(modelo_glm2_3)
******************************************************************
Family: c("BI", "Binomial")
Call: gamlss(formula = Compl_Sang_Todos ~ pb(Lab_Hb) + Biomarc_pos + ECOTT_DisfVD + Pac_Edad_Corte + Pac_ACVglobal,
family = BI(mu.link = "logit"), data = base_gam, trace = FALSE)
Fitting method: RS()
------------------------------------------------------------------
Mu link function: logit
Mu Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.2668 0.7251 -1.75 0.0811 .
pb(Lab_Hb) -0.1433 0.0596 -2.40 0.0165 *
Biomarc_posSi 0.4524 0.3135 1.44 0.1496
ECOTT_DisfVDSi 0.7814 0.2969 2.63 0.0087 **
Pac_Edad_CorteSi -0.2025 0.3261 -0.62 0.5348
Pac_ACVglobalSi -0.0630 0.6268 -0.10 0.9200
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
------------------------------------------------------------------
NOTE: Additive smoothing terms exist in the formulas:
i) Std. Error for smoothers are for the linear effect only.
ii) Std. Error for the linear terms maybe are not accurate.
------------------------------------------------------------------
No. of observations in the fit: 684
Degrees of Freedom for the fit: 8.06
Residual Deg. of Freedom: 676
at cycle: 4
Global Deviance: 366
AIC: 382
SBC: 419
******************************************************************
plot(modelo_glm2_3)
******************************************************************
Summary of the Randomised Quantile Residuals
mean = -0.0134
variance = 1.04
coef. of skewness = 0.075
coef. of kurtosis = 2.83
Filliben correlation coefficient = 0.999
******************************************************************
wp(modelo_glm2_3, ylim.all = 1)
###SELECCION DEL MEJOR MODELO###
GAIC(modelo_glm2_1, modelo_glm2_2,modelo_glm2_3)
#El mejor modelo es: modelo_glm2_3
#Cuando se incorpora en algún predictor de un modelo aditivo (GAM o GAMLSS) una función smooth, el coeficiente de regresión y su error estimado no se pueden interpretar de la forma convencional, ya que estos solo contemplan la aportación lineal, ignorando la no lineal. La mejor forma de interpretar el impacto de una función smooth no lineal es mediante:
#Gráficos de dependencia parcial, que muestran el impacto en las predicciones del modelo a medida que varía el valor de un predictor y se mantienen constantes los otros.
#getPEF( #no se puede porque solamente hay 1 variable continua
# modelo_glm2_3,
# term = "Lab_Hb",
# parameter = "mu",
# plot = TRUE
#)
#Reajustar el modelo excluyendo el predictor de interés y evaluar el impacto que tiene sobre el modelo. drop1()
drop <- drop1(object = modelo_glm2_3, parallel = "multicore", ncpus = 4)
drop
Single term deletions for
mu
Model:
Compl_Sang_Todos ~ pb(Lab_Hb) + Biomarc_pos + ECOTT_DisfVD +
Pac_Edad_Corte + Pac_ACVglobal
Df AIC LRT Pr(Chi)
<none> 382
pb(Lab_Hb) 3.062 390 14.18 0.0028 **
Biomarc_pos 1.042 382 2.31 0.1358
ECOTT_DisfVD 0.953 387 6.77 0.0086 **
Pac_Edad_Corte 0.925 380 0.14 0.6804
Pac_ACVglobal 0.985 380 -0.04 1.0000
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Como conclusión vemos que probando con estos modelos aditivos no obtenemos resultados significativos para Plaquetas, Edad, ni Clearence de Creatinina.
#cross validation con método Leave one Out y GAM
#no se puede utilizar la libreria GAMLSS ya que tiene un error interno en el código al hacer CV con VR binomial
#dejo el script para futuros intentos
#modelo_glm2_cv <- gamlssCV(formula = Compl_Sang_Todos ~ Biomarc_pos + ECOTT_DisfVD + pb(ClCr) + pb(Lab_Hb) + (Pac_Edad_Corte) + Pac_ACVglobal,
# family = BI,
# data = base_gam,
# K.fold = 10, parallel = "multicore", ncpus = 4,
# set.seed = 1)
#el CV con caret no permite seleccionar el tipo de smoothing de la variable, elige el smoothing que mejor se adapta a los datos de forma automática.
library(mgcv)
This is mgcv 1.8-40. For overview type 'help("mgcv-package")'.
Attaching package: ‘mgcv’
The following object is masked from ‘package:nnet’:
multinom
The following object is masked from ‘package:arsenal’:
negbin
library(caret)
base_gam$Compl_Sang_Todos <- as.factor(base_gam$Compl_Sang_Todos)
levels(base_gam$Compl_Sang_Todos) <- c("No", "Si")
set.seed(0)
LOOCV_m11 <- train(Compl_Sang_Todos ~ Biomarc_pos + ECOTT_DisfVD + Lab_Hb + Pac_Edad_Corte + Pac_ACVglobal,
data = base_gam,
method = "gam",
trControl = trainControl(method = "LOOCV", number = 1, classProbs = T, summaryFunction = twoClassSummary),
tuneGrid = data.frame(method = "GCV.Cp", select = FALSE),
family = "binomial", metric = "ROC"
)
summary(LOOCV_m11)
Family: binomial
Link function: logit
Formula:
.outcome ~ Biomarc_posSi + ECOTT_DisfVDSi + Pac_Edad_CorteSi +
Pac_ACVglobalSi + s(Lab_Hb)
Parametric coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.0369 0.2831 -10.73 <0.0000000000000002 ***
Biomarc_posSi 0.4569 0.3153 1.45 0.1473
ECOTT_DisfVDSi 0.7824 0.2980 2.63 0.0087 **
Pac_Edad_CorteSi -0.1952 0.3279 -0.60 0.5516
Pac_ACVglobalSi -0.0337 0.6294 -0.05 0.9573
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Approximate significance of smooth terms:
edf Ref.df Chi.sq p-value
s(Lab_Hb) 3.67 4.59 14 0.011 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.036 Deviance explained = 7.08%
UBRE = -0.44163 Scale est. = 1 n = 684
#Calculo metricas con regresion logistica con smoothing de modelo con cross validation
LOOCV_m11$pred
roc_LOOCV_m11<- roc(base_gam$Compl_Sang_Todos ~ LOOCV_m11$pred[,4], auc=TRUE, ci=TRUE, plot=TRUE)
Setting levels: control = No, case = Si
Setting direction: controls < cases
plot(roc_LOOCV_m11)
Rta_predicha_LOOCV_m11 <- ifelse(fv(modelo_glm2)>0.3, 1, 0)
table(base_gam$Compl_Sang_Todos, Rta_predicha_LOOCV_m11)
Rta_predicha_LOOCV_m11
0 1
No 621 6
Si 53 4
Rta_predicha_LOOCV_m11 <- as.factor(Rta_predicha_LOOCV_m11)
levels(Rta_predicha_LOOCV_m11) <- c("No", "Si")
base_gam$Compl_Sang_Todos <- as.factor(base_gam$Compl_Sang_Todos)
levels(base_gam$Compl_Sang_Todos) <- c("No", "Si")
summary(base_gam$Compl_Sang_Todos)
No Si
627 57
table(base_gam$Compl_Sang_Todos, Rta_predicha_LOOCV_m11)
Rta_predicha_LOOCV_m11
No Si
No 621 6
Si 53 4
#Calculo de metricas
library(caret)
LOOCV_m11_sensibilidad <- caret::sensitivity(base_gam$Compl_Sang_Todos , Rta_predicha_LOOCV_m11, positive="Si", negative = "No")
LOOCV_m11_especificidad <- caret::specificity(base_gam$Compl_Sang_Todos , Rta_predicha_LOOCV_m11, positive="Si", negative = "No")
LOOCV_m11_AUCROC <- roc_LOOCV_m11$auc
LOOCV_m11_accuracy <- mean(base_gam$Compl_Sang_Todos == Rta_predicha_LOOCV_m11)
LOOCV_m11_precision <- caret::precision(base_gam$Compl_Sang_Todos,Rta_predicha_LOOCV_m11)
LOOCV_m11_VPN <- caret::negPredValue(base_gam$Compl_Sang_Todos,Rta_predicha_LOOCV_m11)
LOOCV_m11_TFP <- 1-LOOCV_m11_especificidad
plot(LOOCV_m11$finalModel)
NA
NA
Resumiendo: Utilizamos la libreria GAMLSS y buscamos la mejor distribución entre las distintas binomiales para mi modelo. A posterior comparamos la regresión logística común con métodos de regresión que ajustan y modelan las variables cuantitativas que no respetan la linealidad de los logits, como es el caso de Plaquetas y Clearence de Creatinina.
El mejor modelo en base al AIC es el GLM2, es decir el modelo que utiliza P-splines Penalized Smoothing Splines. A modo exploratorio realizamos las métricas con este modelo, y luego realizamos con la libreria caret el mismo modelo utilizando cross-validation con k-fold = 10 (intentamos realizar cross validation con el paquete GAMLSS pero creemos que hay un problema con la librería al realizar cross validation de modelos binomiales) Con ese modelo con cross validation (modelo 11) realizamos las métricas y ahora seleccionaremos el mejor modelo en la próxima sección.
modelos <- c("Por analisis univariado", "Por Lasso", "Por Random Forest", "Por Lasso + RF + Univ", "GAM con CV")
Sensibilidad <- c(LOOCV_m6_sensibilidad, LOOCV_m7_sensibilidad, LOOCV_m8_sensibilidad, LOOCV_m9rf_sensibilidad,LOOCV_m11_sensibilidad)
Especificidad <- c(LOOCV_m6_especificidad, LOOCV_m7_especificidad, LOOCV_m8_especificidad, LOOCV_m9rf_especificidad, LOOCV_m11_especificidad)
AUCROC <- c(LOOCV_m6_AUCROC, LOOCV_m7_AUCROC, LOOCV_m8_AUCROC, LOOCV_m9rf_AUCROC,LOOCV_m11_AUCROC )
Accuracy <- c(LOOCV_m6_accuracy, LOOCV_m7_accuracy, LOOCV_m8_accuracy, LOOCV_m9rf_accuracy, LOOCV_m11_accuracy)
Precision <- c(LOOCV_m6_precision, LOOCV_m7_precision, LOOCV_m8_precision, LOOCV_m9rf_precision,LOOCV_m11_precision)
VPN <- c(LOOCV_m6_VPN, LOOCV_m7_VPN, LOOCV_m8_VPN, LOOCV_m9rf_VPN,LOOCV_m11_VPN)
TFP <- c(LOOCV_m6_TFP, LOOCV_m7_TFP, LOOCV_m8_TFP, LOOCV_m9rf_TFP,LOOCV_m11_TFP)
performance_modelos_LOOCV <- data.frame(modelos, Sensibilidad, Especificidad, AUCROC,
Accuracy, Precision, VPN, TFP)
plot_perf_model_LOOCV <- performance_modelos_LOOCV %>%
pivot_longer(cols = -modelos,
names_to = "Metricas",
values_to = "Valor"
)
# creamos el plot
ggplot()+
geom_point(data=plot_perf_model_LOOCV, aes(x=Metricas, y=Valor, color=modelos), size=3)+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# la comparacion final la podemos hacer con las AUCROC y sus IC
IC_lower_95 <- c(roc_LOOCV_m6$ci[1], roc_LOOCV_m7$ci[1], roc_LOOCV_m8$ci[1], roc_LOOCV_m9rf$ci[1],roc_LOOCV_m11$ci[1] )
IC_upper_95 <- c(roc_LOOCV_m6$ci[3], roc_LOOCV_m7$ci[3], roc_LOOCV_m8$ci[3], roc_LOOCV_m9rf$ci[3],roc_LOOCV_m11$ci[3])
db_AUCROC_modelos <- as.data.frame(cbind(modelos, AUCROC, IC_lower_95, IC_upper_95))
db_AUCROC_modelos
# NO hay diferencia significativa, todos los IC 95% se superponen
#Seleccion de modelo por AIC
mm6 <- extractAIC(LOOCV_m6$finalModel)#379
mm7 <- extractAIC(LOOCV_m7$finalModel) #367
mm8 <- extractAIC(LOOCV_m8$finalModel)#379
mm9 <- extractAIC(LOOCV_m9rf$finalModel)#381
mm11 <- extractAIC(LOOCV_m11$finalModel) #365
AIC_finales <- c(mm6, mm7, mm8, mm8, mm11)
AIC_finales
[1] 11.00 378.08 10.00 379.66 7.00 389.40 7.00 389.40 8.67 381.93
#CONCLUSION: el modelo m11 es el que tiene mejor AUC, S y E y AIC y es el modelo elegido.
CONCLUSION: el modelo m11 es el que tiene mejor AUC, S y E y AIC y es el modelo elegido.
.No es posible graficar en términos de Odds Ratio los modelos con función smooth utilizados con libreria caret. Por lo tanto incluimos las tablas resumen y graficos que validan nuestro modelo propuesto. .Como conclusíón, en este registro de pacientes con tromboembolismo de pulmón, luego de realizar un modelo aditivo generalizado, se evidencia que las variables Hemoglobina, presencia de biomarcadores positivos, la presencia de disfunción ventricular derecha en el ecocardiograma, la edad > 75 años y el antecedente de ACV previo se asocian de forma significativa a la presencia de sangrado como complicación en la evolución intrahospitalaria y/o a 30 días de seguimiento ambulatorio.
#No es posible graficar en términos de Odds Ratio los modelos con función smooth utilizados con libreria caret.
#Por lo tanto incluimos las tablas resumen y graficos que validan nuestro modelo propuesto
#drop test para ver significancia de cada variable en modelo elegido
drop
Single term deletions for
mu
Model:
Compl_Sang_Todos ~ pb(Lab_Hb) + Biomarc_pos + ECOTT_DisfVD +
Pac_Edad_Corte + Pac_ACVglobal
Df AIC LRT Pr(Chi)
<none> 382
pb(Lab_Hb) 3.062 390 14.18 0.0028 **
Biomarc_pos 1.042 382 2.31 0.1358
ECOTT_DisfVD 0.953 387 6.77 0.0086 **
Pac_Edad_Corte 0.925 380 0.14 0.6804
Pac_ACVglobal 0.985 380 -0.04 1.0000
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#grafico con variable Hb suavizada para el modelo elegido
plot(LOOCV_m11$finalModel)
#gráfico de residuos tipo worms para modelo GAM elegido
library(gamlss)
wp(modelo_glm2_3, ylim.all = 1)
#curva ROC del modelo elegido
library(pROC)
pROC_obj <- pROC::roc(base_gam$Compl_Sang_Todos,LOOCV_m11$pred[,4],
smoothed = TRUE,
# arguments for ci
ci=TRUE, ci.alpha=0.9, stratified=FALSE,
# arguments for plot
plot=TRUE, auc.polygon=TRUE, max.auc.polygon=TRUE, grid=TRUE,
print.auc=TRUE, show.thres=TRUE)
Setting levels: control = No, case = Si
Setting direction: controls < cases
sens.ci <- ci.se(pROC_obj)
|
| | 0%
|
|= | 0%
|
|= | 1%
|
|== | 1%
|
|== | 2%
|
|=== | 2%
|
|=== | 3%
|
|==== | 3%
|
|===== | 3%
|
|===== | 4%
|
|====== | 4%
|
|====== | 5%
|
|======= | 5%
|
|======= | 6%
|
|======== | 6%
|
|========= | 6%
|
|========= | 7%
|
|========== | 7%
|
|========== | 8%
|
|=========== | 8%
|
|=========== | 9%
|
|============ | 9%
|
|============= | 10%
|
|============== | 10%
|
|============== | 11%
|
|=============== | 11%
|
|=============== | 12%
|
|================ | 12%
|
|================= | 13%
|
|================== | 13%
|
|================== | 14%
|
|=================== | 14%
|
|=================== | 15%
|
|==================== | 15%
|
|==================== | 16%
|
|===================== | 16%
|
|====================== | 16%
|
|====================== | 17%
|
|======================= | 17%
|
|======================= | 18%
|
|======================== | 18%
|
|======================== | 19%
|
|========================= | 19%
|
|========================== | 19%
|
|========================== | 20%
|
|=========================== | 20%
|
|=========================== | 21%
|
|============================ | 21%
|
|============================ | 22%
|
|============================= | 22%
|
|============================== | 22%
|
|============================== | 23%
|
|=============================== | 23%
|
|=============================== | 24%
|
|================================ | 24%
|
|================================ | 25%
|
|================================= | 25%
|
|================================== | 25%
|
|================================== | 26%
|
|=================================== | 26%
|
|=================================== | 27%
|
|==================================== | 27%
|
|==================================== | 28%
|
|===================================== | 28%
|
|====================================== | 28%
|
|====================================== | 29%
|
|======================================= | 29%
|
|======================================= | 30%
|
|======================================== | 30%
|
|======================================== | 31%
|
|========================================= | 31%
|
|========================================== | 31%
|
|========================================== | 32%
|
|=========================================== | 32%
|
|=========================================== | 33%
|
|============================================ | 33%
|
|============================================ | 34%
|
|============================================= | 34%
|
|============================================== | 34%
|
|============================================== | 35%
|
|=============================================== | 35%
|
|=============================================== | 36%
|
|================================================ | 36%
|
|================================================ | 37%
|
|================================================= | 37%
|
|================================================== | 38%
|
|=================================================== | 38%
|
|=================================================== | 39%
|
|==================================================== | 39%
|
|==================================================== | 40%
|
|===================================================== | 40%
|
|====================================================== | 41%
|
|======================================================= | 41%
|
|======================================================= | 42%
|
|======================================================== | 42%
|
|======================================================== | 43%
|
|========================================================= | 43%
|
|========================================================= | 44%
|
|========================================================== | 44%
|
|=========================================================== | 44%
|
|=========================================================== | 45%
|
|============================================================ | 45%
|
|============================================================ | 46%
|
|============================================================= | 46%
|
|============================================================= | 47%
|
|============================================================== | 47%
|
|=============================================================== | 47%
|
|=============================================================== | 48%
|
|================================================================ | 48%
|
|================================================================ | 49%
|
|================================================================= | 49%
|
|================================================================= | 50%
|
|================================================================== | 50%
|
|=================================================================== | 50%
|
|=================================================================== | 51%
|
|==================================================================== | 51%
|
|==================================================================== | 52%
|
|===================================================================== | 52%
|
|===================================================================== | 53%
|
|====================================================================== | 53%
|
|======================================================================= | 53%
|
|======================================================================= | 54%
|
|======================================================================== | 54%
|
|======================================================================== | 55%
|
|========================================================================= | 55%
|
|========================================================================= | 56%
|
|========================================================================== | 56%
|
|=========================================================================== | 56%
|
|=========================================================================== | 57%
|
|============================================================================ | 57%
|
|============================================================================ | 58%
|
|============================================================================= | 58%
|
|============================================================================= | 59%
|
|============================================================================== | 59%
|
|=============================================================================== | 60%
|
|================================================================================ | 60%
|
|================================================================================ | 61%
|
|================================================================================= | 61%
|
|================================================================================= | 62%
|
|================================================================================== | 62%
|
|=================================================================================== | 63%
|
|==================================================================================== | 63%
|
|==================================================================================== | 64%
|
|===================================================================================== | 64%
|
|===================================================================================== | 65%
|
|====================================================================================== | 65%
|
|====================================================================================== | 66%
|
|======================================================================================= | 66%
|
|======================================================================================== | 66%
|
|======================================================================================== | 67%
|
|========================================================================================= | 67%
|
|========================================================================================= | 68%
|
|========================================================================================== | 68%
|
|========================================================================================== | 69%
|
|=========================================================================================== | 69%
|
|============================================================================================ | 69%
|
|============================================================================================ | 70%
|
|============================================================================================= | 70%
|
|============================================================================================= | 71%
|
|============================================================================================== | 71%
|
|============================================================================================== | 72%
|
|=============================================================================================== | 72%
|
|================================================================================================ | 72%
|
|================================================================================================ | 73%
|
|================================================================================================= | 73%
|
|================================================================================================= | 74%
|
|================================================================================================== | 74%
|
|================================================================================================== | 75%
|
|=================================================================================================== | 75%
|
|==================================================================================================== | 75%
|
|==================================================================================================== | 76%
|
|===================================================================================================== | 76%
|
|===================================================================================================== | 77%
|
|====================================================================================================== | 77%
|
|====================================================================================================== | 78%
|
|======================================================================================================= | 78%
|
|======================================================================================================== | 78%
|
|======================================================================================================== | 79%
|
|========================================================================================================= | 79%
|
|========================================================================================================= | 80%
|
|========================================================================================================== | 80%
|
|========================================================================================================== | 81%
|
|=========================================================================================================== | 81%
|
|============================================================================================================ | 81%
|
|============================================================================================================ | 82%
|
|============================================================================================================= | 82%
|
|============================================================================================================= | 83%
|
|============================================================================================================== | 83%
|
|============================================================================================================== | 84%
|
|=============================================================================================================== | 84%
|
|================================================================================================================ | 84%
|
|================================================================================================================ | 85%
|
|================================================================================================================= | 85%
|
|================================================================================================================= | 86%
|
|================================================================================================================== | 86%
|
|================================================================================================================== | 87%
|
|=================================================================================================================== | 87%
|
|==================================================================================================================== | 88%
|
|===================================================================================================================== | 88%
|
|===================================================================================================================== | 89%
|
|====================================================================================================================== | 89%
|
|====================================================================================================================== | 90%
|
|======================================================================================================================= | 90%
|
|======================================================================================================================== | 91%
|
|========================================================================================================================= | 91%
|
|========================================================================================================================= | 92%
|
|========================================================================================================================== | 92%
|
|========================================================================================================================== | 93%
|
|=========================================================================================================================== | 93%
|
|=========================================================================================================================== | 94%
|
|============================================================================================================================ | 94%
|
|============================================================================================================================= | 94%
|
|============================================================================================================================= | 95%
|
|============================================================================================================================== | 95%
|
|============================================================================================================================== | 96%
|
|=============================================================================================================================== | 96%
|
|=============================================================================================================================== | 97%
|
|================================================================================================================================ | 97%
|
|================================================================================================================================= | 97%
|
|================================================================================================================================= | 98%
|
|================================================================================================================================== | 98%
|
|================================================================================================================================== | 99%
|
|=================================================================================================================================== | 99%
|
|=================================================================================================================================== | 100%
|
|====================================================================================================================================| 100%
plot(sens.ci, type="shape", col="lightblue")
Warning: Low definition shape.
plot(sens.ci, type="bars")